Exemple #1
0
        private async Task <CronObject> CreateCronJob(CronMessage message)
        {
            var job = JobBuilder.Create <CronJobService>()
                      .WithIdentity(message.JobName)
                      .UsingJobData(nameof(CronMessage.QueueConnection), message.QueueConnection)
                      .UsingJobData(nameof(CronMessage.QueueName), message.QueueName)
                      .UsingJobData(nameof(CronMessage.Message), message.Message)
                      .Build();

            var trigger = TriggerBuilder.Create()
                          .ForJob(job)
                          .WithCronSchedule(message.Cron)
                          .WithIdentity($"{message.JobName}Trigger")
                          .StartNow()
                          .Build();

            return(new CronObject()
            {
                Succeeded = false,
                JobName = message.JobName,
                DateCreated = DateTime.Now,
                LastModified = DateTime.Now,
                Message = message.Message,
                CronSchedule = message.Cron,
                LastRun = DateTime.MinValue,
                Queue = message.QueueName,
                CronJob = job,
                CronTrigger = trigger,
            });
        }
        public async Task <ActionResult> UpsertCronJob([FromBody] CronMessage message)
        {
            var upserted = await _cronRepository.UpsertCronJob(message);

            if (!upserted)
            {
                throw new Exception("Could not upsert job.");
            }
            return(Ok());
        }
Exemple #3
0
        private async Task <bool> CreateAndStartCronJob(CronMessage message)
        {
            var cronObject = await CreateCronJob(message);

            var isScheduled = await ScheduleCronJob(cronObject);

            if (isScheduled)
            {
                CronJobs.Add(cronObject.JobName, cronObject);
                return(true);
            }
            return(false);
        }
Exemple #4
0
        public async Task <bool> UpsertCronJob(CronMessage message)
        {
            var cronJob = await GetCronJob(message.JobName);

            if (cronJob == null)
            {
                return(await CreateAndStartCronJob(message));
            }
            else
            {
                var isDeleted = await DeleteCronJob(message.JobName);

                return(await CreateAndStartCronJob(message));
            }
            return(true);
        }