Tag: quartz.net

Quartz.NET设置MisfireInstruction

我正在使用Quartz.NET在C#中工作,并且在CronTrigger上设置misfire指令时遇到问题。 我正在运行安装了Quartz DB的SQL后端。 我有以下代码适用于创建作业和运行调度程序。 IScheduler _scheduler; IJobDetail job; ISchedulerFactory sFactory; ICronTrigger trig; sFactory = new StdSchedulerFactory(); _scheduler = sFactory.GetScheduler(); _scheduler.Start(); job = JobBuilder.Create().WithIdentity(“testJob”, “testGroup”).Build(); trig = (ICronTrigger) TriggerBuilder.Create().WithIdentity(“testTrigger”, “testGroup”).WithCronSchedule(“0/10 * * * * ?”).Build(); int i = trig.MisfireInstruction; _scheduler.ScheduleJob(job, trig); 我可以访问的唯一misfireinstruction是trig.MisfireInstruction ,它是一个int,我无法设置它。 在CronScheduleBuilder中还有一些以WithMisfireHandlingInstruction开头的函数。

AWS中托管的.NET Core 2 Web应用程序中的计划作业

我们正在.NET Core 2中开始一个新项目,我将需要一些方法来运行一个可以完成一些工作的预定作业。 此应用程序将托管在Linux服务器或AWS linux实例中。 我使用Azure WebJobs和.NET 4.6完成了这项工作。 如何使用.Net Core和Linux完成这项工作

在中等信任托管上使用quartz.net

我需要在我的.NET MVC网站上安排调度function,而且我遇到了Quartz.net库,它可以完全满足我的需要。 问题是我在托管(GoDaddy)上运行我的网站,当我将Quartz.net 2.0.1添加到我的项目时,我得到”that assembly does not allow partially trusted callers”exception。 经过一些研究,我发现很多人都有同样的问题,有些人通过从Quartz.net中删除Common.Logging库来解决它。 我遵循了一些建议并删除了对Common.Logging的所有引用,但我仍然有问题。 它看起来还不够,现在我Inheritance security rules violated while overriding memberexception时Inheritance security rules violated while overriding member了Inheritance security rules violated while overriding member ,更多细节: Inheritance security rules violated while overriding member: Quartz.Util.DirtyFlagMap`2.GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)’. Security accessibility of the overriding method must match the security accessibility of […]

Windows服务已启动,然后使用Topshelf停止

我正在使用Quartz.net,我试图让Quartz服务器在Windows服务中启动。 我创建了一个Windows服务项目并包含了Quartz.net库。 在我的服务类中,我有: protected override void OnStart(string[] args) { try { Host host = HostFactory.New(x => { x.Service(s => { s.SetServiceName(“quartz.server”); s.ConstructUsing(builder => { QuartzServer server = new QuartzServer(); server.Initialize(); return server; }); s.WhenStarted(server => server.Start()); s.WhenPaused(server => server.Pause()); s.WhenContinued(server => server.Resume()); s.WhenStopped(server => server.Stop()); }); x.RunAsLocalService(); //x.RunAs(@”mydomain\mysusername”, “mypassword”); x.SetDescription(Configuration.ServiceDescription); x.SetDisplayName(Configuration.ServiceDisplayName); x.SetServiceName(Configuration.ServiceName); }); host.Run(); } […]

在Quartz.net中处理JobExecutionException

可能是一个愚蠢的问题……但无论如何…… 我已经设置了quartz,并且可以安排作业,我可以确认作业(实现IJob接口)正在工作。 查看网站上的文档(教程的第3课): 允许从execute方法抛出的唯一exception类型是JobExecutionException 。 我希望当发生一个我没有显式处理的exception时,它应该抛出一个JobExecutionException,这样我就可以在’parent’应用程序中记录它。 我已将我的代码包装在try catch中,并抛出JobExecutionException,但现在在哪里处理它? 我没有在任何地方调用execute方法,这是由Quartz处理的(在一个单独的线程上)。 那么,如何在错误发生时处理该错误。 我真的不想吞下Job中的错误

Quartz.Net并在链接作业之间传递数据

我必须实现一个简单的工作流程。 某些作业A必须在指定时间运行(cron触发器)。 此作业搜索未处理的数据(假设有些IThingToDo [])并对其进行处理。 作业B必须在作业A完成后执行,并且应将处理数据列表(IThingToDo [])传递给它。 作业A存储如下数据: context.Put(“Things”, things); 然后我使用IJobListener知道作业A何时完成,获取“Things”数组并为作业B创建一个触发器: Trigger trigger = new SimpleTrigger(“JobBTrigger”, “NS”, DateTime.Now); trigger.JobName = “JobB”; trigger.JobGroup = “NS”; trigger.JobDataMap.Put(“Things”, things); context.Scheduler.ScheduleJob(trigger); 这很好用。 除了我不能从作业B获得“事物”,context.Get(“Things”)== null。 怎么了?

Quartz.net简单示例

我正在尝试找到一个简单的Quartz.Net示例,当单击一个按钮时,它会启动Quartz.Netfunction。 我能够使用Quartz.Net示例(控制台应用程序)并更改一些内容来生成它(SimpleExample.cs): public virtual void Run() { ISchedulerFactory sf = new StdSchedulerFactory(); IScheduler sched = sf.GetScheduler(); DateTimeOffset runTime = DateBuilder.EvenMinuteDate(DateTime.UtcNow); DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(null, 10); IJobDetail job = JobBuilder.Create() .WithIdentity(“job1”, “group1”) .Build(); ITrigger trigger = TriggerBuilder.Create() .WithIdentity(“trigger1”, “group1”) .StartAt(runTime) .WithCronSchedule(“5 0/1 * * * ?”) .Build(); sched.ScheduleJob(job, trigger); sched.Start(); } 但我对如何通过按钮点击触发这一点感到困惑。 我以为我可以这样做: private void button1_Click(object […]

多个应用服务器中的相同Quartz.Net调度程序。

我是Quartz.NET(v.3.0.3)中的新function。我有控制台应用程序,它是石英主机和广播tcp.x:555 / QuartzScheduler 。 在我的公司,我们有2台app服务器机器,它们自己是主机 – 奴隶。如果主应用程序是关闭奴隶取代它的位置。我们将在这些服务器中设置控制台应用程序(作为服务)。 如果我们这样做,Quartz.NET会发生什么,这些调度程序是相同还是不同? PS:我们正在使用MsSQL jobStore(AdoNetJobStore)。 谢谢你的回复。

如何设置Quartz.NET来安排电子邮件

下载的quartz.NET库中有两个解决方案Quartz.server.2008.sln和quartz.2008.sln 。 现在我必须设置重复工作。 数据库中将有一个表格,其中将定义所有时间表(如月的第一个星期五,每月5个月,每个星期天上午12点……等)。 我按计划执行了该方法。 现在我如何使用quartz.net从数据库获取计划并设置执行方法? 什么是正确的步骤?

测试IInterruptableJob

我有以下代码: private static void InterruptAJob(JobKey foundJobKey, IScheduler sched) { if (null != foundJobKey) { sched.Interrupt(foundJobKey); } } 我得到这个例外(我期待这个): “Job’groupName001.testJobDetailImpl_0’无法中断,因为它没有实现Quartz.IInterruptableJob” 有没有办法使用“JobKey”测试IInterruptableJob? …….. 编辑(APPEND) /// /// Request the interruption, within this Scheduler instance, of all /// currently executing instances of the identified , which /// must be an implementor of the interface. /// /// /// /// If […]