Esempio n. 1
0
        public static (IJobDetail, ITrigger)  SetUpNotificationJobsUpdater()
        {
            var jobDetail = QuartzJob.CreateJob(Repeat.EveryMinute);
            var trigger   = QuartzTrigger.CreateTrigger(Repeat.EveryMinute);

            return(jobDetail, trigger);
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            List <Lottery> lts = DapperHelper.getLotterys();

            foreach (Lottery l in lts)
            {
                QuartzJob.CreateJob("task" + l.lotteryID, "CreateTask", l);
            }

            Console.ReadLine();
        }
Esempio n. 3
0
        public void QuartzJob_should_be_deserialized_from_new_wire_format()
        {
            var cmd = new ChangeSampleAggregateCommand(1, Guid.NewGuid());
            var evt = new SampleAggregateCreatedEvent("1", cmd.AggregateId);

            var scheduleKey = ScheduleKey.For(cmd);

            var oldSerializer = new Serializer(new SerializerOptions(true, true, null, null));

            var streamEvent = new MemoryStream();

            oldSerializer.Serialize(evt, streamEvent);
            var serializedEvent = streamEvent.ToArray();

            var streamKey = new MemoryStream();

            oldSerializer.Serialize(scheduleKey, streamKey);
            var serializedKey = streamKey.ToArray();

            var jobDataMap = new JobDataMap
            {
                { "EventKey", serializedEvent },
                { "ScheduleKey", serializedKey }
            };

            var job = QuartzJob.CreateJob(scheduleKey, jobDataMap);

            var trigger = TriggerBuilder.Create()
                          .WithIdentity(job.Key.Name, job.Key.Group)
                          .WithSimpleSchedule(x => x.WithMisfireHandlingInstructionFireNow()
                                              .WithRepeatCount(0))
                          .StartAt(BusinessDateTime.Now.AddSeconds(1))
                          .Build();

            var scheduler = GridNode.Container.Resolve <IScheduler>();

            scheduler.ScheduleJob(job, trigger);


            var waiter = GridNode.NewWaiter(Timeout)
                         .Expect <SampleAggregateCreatedEvent>(e => e.SourceId == evt.SourceId)
                         .Create();

            waiter.Wait();
        }
Esempio n. 4
0
        public void Legacy_wire_data_can_run_with_latest_job_code()
        {
            ScheduleKey      key              = new ScheduleKey(Guid.NewGuid(), Name, Group);
            Command          command          = new SuccessCommand("1232");
            ExecutionOptions executionOptions = new ExecutionOptions(DateTime.Now.AddSeconds(1), typeof(ScheduledCommandSuccessfullyProcessed));

            var serializedCommand = SerializeAsLegacy(command);
            var serializedKey     = SerializeAsLegacy(key);
            var serializedOptions = SerializeAsLegacy(executionOptions);

            var jobDataMap = new JobDataMap
            {
                { QuartzJob.CommandKey, serializedCommand },
                { QuartzJob.ScheduleKey, serializedKey },
                { QuartzJob.ExecutionOptionsKey, serializedOptions }
            };

            var legacyJob = QuartzJob.CreateJob(key, jobDataMap);

            var listener = new CallbackJobListener();

            _quartzScheduler.ListenerManager.AddJobListener(listener, KeyMatcher <JobKey> .KeyEquals(legacyJob.Key));
            var task = listener.TaskFinish.Task;

            var trigger = TriggerBuilder.Create()
                          .WithIdentity(legacyJob.Key.Name, legacyJob.Key.Group)
                          .WithSimpleSchedule(x => x.WithMisfireHandlingInstructionFireNow()
                                              .WithRepeatCount(0))
                          .StartAt(DateTimeOffset.Now.AddMilliseconds(200))
                          .Build();

            _quartzScheduler.ScheduleJob(legacyJob, trigger);

            if (!task.Wait(TimeSpan.FromSeconds(10000)))
            {
                Assert.Fail("Job execution timed out");
            }

            if (task.Result.Item2 != null)
            {
                Assert.Fail("Job threw an exception", task.Result.Item2);
            }
        }
Esempio n. 5
0
        private static IReadOnlyDictionary <IJobDetail, IReadOnlyCollection <ITrigger> > GetJobs(IEnumerable <SimpleTriggerModel> notifications)
        {
            var triggers        = new List <ITrigger>();
            var triggersAndJobs = new Dictionary <IJobDetail, IReadOnlyCollection <ITrigger> >();
            var repeatTypes     = notifications.Select(x => x.RepeatType).Distinct();

            foreach (Repeat repeatType in repeatTypes)
            {
                var job = QuartzJob.CreateJob(repeatType);
                var notificationsOfType = notifications.Where(x => x.RepeatType == repeatType);
                foreach (var notification in notificationsOfType)
                {
                    var triggerId = TriggerNotificationsObserver.GetTriggerId(notification);
                    var trigger   = QuartzTrigger.CreateTrigger(notification.DateStart, notification.RepeatType, triggerId.ToString());//notification.TriggerId.ToString());
                    triggers.Add(trigger);
                }
                triggersAndJobs.Add(job, triggers.ToList());
                triggers.Clear();
            }

            return(triggersAndJobs);
        }