public static (IJobDetail, ITrigger) SetUpNotificationJobsUpdater() { var jobDetail = QuartzJob.CreateJob(Repeat.EveryMinute); var trigger = QuartzTrigger.CreateTrigger(Repeat.EveryMinute); return(jobDetail, trigger); }
static void Main(string[] args) { List <Lottery> lts = DapperHelper.getLotterys(); foreach (Lottery l in lts) { QuartzJob.CreateJob("task" + l.lotteryID, "CreateTask", l); } Console.ReadLine(); }
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(); }
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); } }
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); }