Tag: quartz scheduler

在所有Quartz .NET IInterruptableJob上触发中断

我正在使用Quartz调度程序,并尝试在关闭应用程序时关闭所有作业。 我有一个专业工作,做“保持”或“忙碌等待”,基本上直到它得到一个条件,它坐在那里耐心等待。 由于新的集成点,这项工作是新的。 该应用程序使用Topshelf作为服务运行,每当我们尝试关闭服务以升级它时,现在该作业正在运行,我们必须最终重新启动服务器以使其关闭。 无论如何,这里很奇怪,我有一个单一的jobtype,当我尝试使用作业FireInstanceId或JobKey在下面的代码段中触发中断时: _logger.InfoFormat(“{0} scheduler interrupting listener”, scheduler.SchedulerName); scheduler.Interrupt(ListenerKeys.Realtime); _logger.InfoFormat(“{0} scheduler shutting down”, scheduler.SchedulerName); scheduler.Shutdown(true); _logger.InfoFormat(“{0} scheduler shut down”, scheduler.SchedulerName); 我得到一个例外: Job’Listeners.Realtime’不能被中断,因为它没有实现Quartz.IInterruptableJob 人们会认为这是直截了当的。 但是,这是使用此作业键的唯一作业: ListenerJob : BaseJob, IInterruptableJob { // some other code referenced in ExecuteJob public void Interrupt() { _dequeuer.StopDequeing(); } } 我会说你是如何实现它的,所以我的问题变成了:Quartz中是否存在已知错误? 是否存在组密钥和中断的问题? 有没有办法告诉调度程序中断所有可中断的作业? 还有其他选择吗? UPDATE 我决定从以下答案运行以下代码以获得更多诊断。 var接口确实包含IInterruptableJob var jobs = […]

Quartz.NET – 在Job完成完全执行后调用一个函数

我们使用Quartz.Net在Windows服务中按计划触发作业。 我有一种情况,我必须每5 minutes从Start DateTime到End DateTime触发一个工作。 作业完成后,我们需要计算Next Start DateTime和Next End DateTime并保存到DB – 为此,我试图覆盖JobListener ,它有一个方法: JobWasExecuted public class xPTJobListener : JobListenerSupport { public override string Name { get { return “xPTJobListener”; } } public override void JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException) { var dataMap = context.MergedJobDataMap; var schedule = (MyDTO)dataMap[“Schedule”]; using (var logger = new xPTLogger()) { logger.LogMessage(MessageType.Information, […]

使用Quartz .NET创建Cron表达式

是否可以使用Quartz .NET程序集生成cron表达式? 我看到CronScheduleBuilder类有一个私有成员cronExpression ,这基本上就是我要找的东西。 有没有其他方法可以获得cron表达式?

我怎样才能在每两周的星期一和星期二运行石英计划?

我使用以下方式在星期一每两周运行一次计划。 ITrigger trigger = TriggerBuilder.Create() .StartAt(DateBuilder.DateOf(StartHour, StartMinute, StartSeconds, StartDate, StartMonth, StartYear)) .WithCalendarIntervalSchedule(x => x.WithIntervalInWeeks(Int32.Parse(nWeekInterval))) .EndAt(DateBuilder.DateOf(0, 0, 0, EndDay, EndMonth, EndYear)) .Build(); 但是我如何使用单一的时间表在星期一和星期二运行。 请指教。

使用SQL Server AdoJobStore配置Quartz.NET

我在尝试让Quartz.NET与AdoJobStore一起工作时遇到了麻烦。 这里没有其他问题似乎遇到了我的问题。 我能够在没有AdoJobStore配置的情况下使其工作正常,但是最终会保留所有内容,但是在尝试GetScheduler()时我得到了一个我无法弄清楚的错误。 这是我的quartz app.config部分: 这是相关的初始化代码: var config = (NameValueCollection) ConfigurationManager.GetSection(“quartz”); ISchedulerFactory factory = new StdSchedulerFactory(config); // This is where an ArgumentOutOfRange exception occurs: IScheduler scheduler = factory.GetScheduler(); 我得到的错误是ArgumentOutOfRangeException : 长度不能小于零。\ r \ n参数名称:长度 单步执行代码,我可以validation配置部分是否正确读取,并且我检查拼写错误和配置属性的大写错误。 我已经validation了可以使用我拥有的connectionString访问数据库。 在通过代码并在立即窗口中检查工厂变量时我注意到的一件事是它总是说“AllSchedulers:Count = 0” – 不确定是否因为我还没有实例化一个或者如果那是我的问题。 试图从配置中为GetScheduler() instanceName – factory.GetScheduler(“XxxDefaultQuartzScheduler”) 也不起作用。 我错过了什么/做错了什么? 请指教。

如何在Quartz.net中随时开始工作?

我需要你的帮助来学习Quartz.Net。 但每个样本都是相同的。 我想startTime:07.03.2012 13:28:10但不工作。 不返回错误代码。这次开始? DateTime startdate = DateTime.Parse(“07.03.2012 10:28:10”, culture, System.Globalization.DateTimeStyles.AssumeLocal); // DateTime startdate = Convert.ToDateTime(“07.03.2012 09:46:10”, culture); //DateTime zaman = new DateTime(2012, 3,6,17, 12, 11); DateTime parsedStartTime = DateTime.SpecifyKind(startdate, DateTimeKind.Utc); DateTime localStartTime = parsedStartTime.ToLocalTime(); Trigger trigger = new SimpleTrigger(“myFirstTrigger”, null, parsedStartTime, null, 5, TimeSpan.FromSeconds(10));

如何添加触发器来运行Quartz.Net调度程序实例而不重启服务器?

是否可以添加带有触发器的作业来运行Quartz.NET调度程序实例而无需重新启动服务器?

现在用视觉开始执行石英计划,间隔24小时

我创建了一个爬虫,它从我之前定义的其他网站获取新闻,因此我使用quartz在后台运行任务。计划定义如下: public class JobBackground : IJob { public void Execute(IJobExecutionContext context) { for (int j = 1; j <= 920; j++) { NewsRepository newsRepository = new NewsRepository(); GoyaAgent Goyaagent = new GoyaAgent(); Task<List> lst = Goyaagent.parsing(“http://www.gooyait.com/page/”+j); List enresult = lst.Result; foreach (NewsContent newsContent in enresult) { News newnews = new News(); newnews.Subject = newsContent.Title; newnews.NewsDate […]

作业不使用JobChainingJobListener链接

我有我的Quartz调度程序的当前代码: var scheduler = StdSchedulerFactory.GetDefaultScheduler(); // Job1 var Job1 = JobBuilder.Create().WithIdentity(“job1”, “group1”).Build(); // Job2 var Job2 = JobBuilder.Create().WithIdentity(“job2”, “group2”).Build(); // Triggers ITrigger trigger1 = TriggerBuilder.Create().WithIdentity(“trigger1”, “group1”).StartNow().Build() ITrigger trigger2 = TriggerBuilder.Create().WithIdentity(“trigger2”, “group2”).StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(1).WithRepeatCount(4)).Build(); // JobKeys JobKey jobKey1 = new JobKey(“Job1”, “group1”); JobKey jobKey2 = new JobKey(“Job2”, “group2”); // Chain jobs JobChainingJobListener chain = new JobChainingJobListener(“testChain”); […]