void AsyncListen() {//异步进程进行监听 int timeSpan = DefualtRefreshCalTicketTimeSpan;//默认轮询间隔 QuartzJobService.QuartzJob job = new QuartzJob(); job.CreateJobWithParam<QuartzJobService.JobDelegate<WebDataCaptureForm>>(new object[] { new QuartzJobService.BaseDelegate(DoJob), null }, DateTime.Now, 2, 0); }
public async Task <ICollection <QuartzJob> > GetScheduledJobs() { var jobKeys = await _scheduler.GetJobKeys(GroupMatcher <JobKey> .AnyGroup()); return(jobKeys.Aggregate(new List <QuartzJob>(), (jobs, jobKey) => { var jobDetail = _scheduler.GetJobDetail(jobKey).Result; var quartzJob = new QuartzJob(); quartzJob.Name = jobDetail.Key.Name; quartzJob.Group = jobDetail.Key.Group; quartzJob.Parameters = GetParameters(jobDetail).ToArray(); var triggers = _scheduler.GetTriggersOfJob(jobDetail.Key).Result; quartzJob.Triggers = triggers.Select(trigger => new QuartzTrigger() { Name = trigger.Key.Name, Group = trigger.Key.Group, NextFireTime = trigger.GetNextFireTimeUtc() }).ToList(); jobs.Add(quartzJob); return jobs; })); }
void RunJob() { //Quartz QuartzJob <JobModel> .RunJobQuartz("Job1", "jobTriggerName1", 10).GetAwaiter().GetResult(); QuartzJob <JobInsertData> .RunJobQuartz("Job2", "jobTriggerName2", 20).GetAwaiter().GetResult(); }
public ResultMessage DoValidation(QuartzJob model) { ResultMessage msg = new ResultMessage(); if (string.IsNullOrEmpty(model.cronSchedule)) { msg.Success = false; msg.Content = "执行时间不能为空"; return(msg); } if (string.IsNullOrEmpty(model.@params)) { msg.Success = false; msg.Content = "班次代码不能为空"; return(msg); } return(new ResultMessage() { Success = true, Content = "" }); }
public static (IJobDetail, ITrigger) SetUpNotificationJobsUpdater() { var jobDetail = QuartzJob.CreateJob(Repeat.EveryMinute); var trigger = QuartzTrigger.CreateTrigger(Repeat.EveryMinute); return(jobDetail, trigger); }
public bool Create(QuartzJob job) { DataContext dc = new DataContext(this.DbString); dc.Context.GetTable <QuartzJob>().InsertOnSubmit(job); dc.Context.SubmitChanges(); return(true); }
private void IntervalListen() { string group = "ListenNIC"; QuartzJob job = new QuartzJob(group); BaseDelegate bd = new BaseDelegate(DoInterval); //job.CreateJobWithParam(,) int interval = 30; int repeact = 24 * 60 * 60 / interval; job.CreateJobWithParam <JobDelegateFunction>(new object[] { bd }, DateTime.Now, interval, repeact); }
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 bool Delete(int id) { DataContext dc = new DataContext(this.DbString); QuartzJob job = dc.Context.GetTable <QuartzJob>().FirstOrDefault(s => s.id.Equals(id)); if (job != null) { dc.Context.GetTable <QuartzJob>().DeleteOnSubmit(job); dc.Context.SubmitChanges(); } return(true); }
void NewThreadDoQueryMsg(object param) { //object[] ps = param as object[]; //WebChatLoginTocken tocken = ps[0] as WebChatLoginTocken; //string deviceID = ps[1] as string; //object[] funParam = new object[] { tocken, deviceID }; QuartzJob job = new QuartzJob(); BaseDelegate bd = new BaseDelegate(CallGetVerifyKey); object[] quartParam = new object[] { bd, param }; job.CreateJobWithParam <JobDelegate <DADefineHelper> >(quartParam, DateTime.Now, 2, -1); }
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); }
private async Task Schedule(ScheduleCommandExecution message) { ScheduleKey key = message.Key; try { _logger.Debug($"Scheduling job {key} for {message.Options.RunAt}"); var job = QuartzJob.Create(message.Key, message.Command, message.CommandMetadata, message.Options); var trigger = TriggerBuilder.Create() .WithIdentity(job.Key.Name, job.Key.Group) .WithSimpleSchedule(x => x.WithMisfireHandlingInstructionFireNow().WithRepeatCount(0)) .StartAt(message.Options.RunAt) .Build(); var fireTime = await _scheduler.ScheduleJob(job, trigger); var scheduleConfirmation = new CommandExecutionScheduled(message.Command.Id, fireTime.UtcDateTime); Sender.Tell(scheduleConfirmation); _publisher.Publish(scheduleConfirmation, message.CommandMetadata); } catch (Exception e) { _logger.Error(e, "Error while scheduled job {Task}", key); if (e is JobPersistenceException && e.InnerException?.GetType() == typeof(ObjectAlreadyExistsException)) { Sender.Tell(new AlreadyScheduled(key)); } else { Sender.Tell(new Status.Failure(e)); } var fault = Fault.New(message, e, message.Command.ProcessId, typeof(SchedulingActor)); _publisher.Publish(fault, message.CommandMetadata); } }
public JsonResult Create([Bind(Include = "cronSchedule,params")] QuartzJob job) { ResultMessage msg = new ResultMessage(); try { job.jobType = (int)CronJobType.CalAtt; msg = DoValidation(job); if (!msg.Success) { return(Json(msg, JsonRequestBehavior.AllowGet)); } else { IQuartzJobService cs = new QuartzJobService(Settings.Default.db); bool isSucceed = cs.Create(job); msg.Success = isSucceed; msg.Content = isSucceed ? "" : "添加失败"; // 重启任务服务 TaskDispatcher dtt = new TaskDispatcher(Settings.Default.queue); dtt.SendRestartSvcMessage(); return(Json(msg, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json(new ResultMessage() { Success = false, Content = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public void GetAllActiveJob() { QuartzJob job = new QuartzJob("Query"); job.GetAllActiveJob(); }