问题标签 [quartz.net-2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2256 浏览

c# - 如何在 Quartz.NET 2.0 中将 cron misfire-instruction FireOnceNow 与 AdoJobStore 一起使用?

我在使用设置并使用XMLSchedulingDataProcessorPlugin.

cron-expression已设置,因此作业将每 1 分钟触发一次:0 0/1 * * * ?.

作业调度程序设置为在Global.asax.cs.

预期行为:如果服务器在应触发作业时停止但在下一次触发之前重新启动,则应立即触发一次。

例子:

第一份工作在00:01:00触发。

我在00:02:00可以触发之前停止服务器,但在它应该触发后几秒钟启动它,比如说00:02:10

当我重新启动服务器时(在00:02:10),我希望在 00:02:00 失败的作业触发一次,然后正常的触发行为将继续。

真正发生的是什么都没有触发。它只是从00:03:00继续触发。

任何想法我必须做些什么才能使其按预期工作?

谢谢你的帮助!

@Global.asax.cs:

@quartz_jobs.xml:

@web.config:

@TestJob.cs:

0 投票
2 回答
1092 浏览

reflection - Quartz.NET 作为在 GAC 中具有依赖关系的 Windows 服务

我已经将 Quartz 设置为 Windows 服务(如果重要,则使用 AdoJobStore)并设法通过远程添加/调度位于我自己的项目 Company.Project 中的自定义 IJob 与 ASP.NET 站点进行通信。服务层。

这花了我一段时间,但只要在 Windows 服务文件夹和网站 bin 文件夹中都存在 Company.Project.ServiceLayer.dll,我的开发机器上一切正常。但是在生产环境中,需要将 Company.Project.ServiceLayer.dll 添加到 GAC。我试图在我的开发机器上模拟这个,从服务文件夹中删除 Company.Project.ServiceLayer.dll 并使用 gacutil 将其添加到 GAC 中。不幸的是,现在当服务启动并尝试实例化我的 IJob 实例时,它无法从 GAC 加载程序集并抛出异常“无法加载文件或程序集”(下面的详细信息)。

我猜 Quartz 在 [QRTZ_JOB_DETAILS].[JOB_CLASS_NAME] 字段中使用反射和 DB 值来尝试加载类?我可能完全错了,但因为这个值(“Company.Product.ServiceLayer.SchedulerJobs.QuintilesEasyJob, Company.Product.ServiceLayer”)只是类的部分描述(它缺少版本和公钥令牌)不是意味着.NET在进行反射时不会查看GAC,因为只有强命名的dll才能存在?这就是我的 GAC 设置现在失败的原因吗?Quartz Windows 服务可以与 GAC 中的 dll 一起使用吗?

非常感谢任何帮助。


0 投票
3 回答
3599 浏览

c# - 如何忽略 Quartz.Net 中的 Misfires?

这是我的石英配置:

这是我的IInterruptableJob

这是我的工作和触发器:

在我调用scheduler.PauseAll()所有工作暂停并调用scheduler.ResumeAll()所有未命中的火灾之后,被解雇!但我想忽略它们,从现在开始继续。

提前致谢。

0 投票
1 回答
8375 浏览

quartz.net - 管理 Quartz.Net 的配置

Quartz.Net 使用 XML 文件来配置要运​​行的作业以及运行这些作业的计划。据我了解,XML 配置的唯一其他选择是在编译时配置作业和计划。

我们有大量计划任务(250 个任务,每个任务部署到 3 到 5 个环境中),并且正在寻求迁移这些任务以使用 Quartz.Net。

[1] 在 Quarts.Net 中管理作业和调度配置信息是否有任何最佳实践?

[2] 是否有任何工具可用于创建配置文件?

作业的示例配置是:

0 投票
3 回答
15066 浏览

c# - Quartz.Net - 使用 log4net 进行通用日志记录

我正在尝试实现 Quartz.Net。只要没有配置日志记录,一切正常(调试输出显示“未找到配置部分 - 抑制日志记录输出”)。

启用日志记录后,我将收到以下错误:Failed getting configuration for Common.Logging from configuration section 'common/logging'

内部异常:为 common/logging 创建配置节处理程序时出错:无法创建类型“Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter,Common.Logging.Log4net”

我使用了几种资源验证我的配置,但据我所知,它应该是正确的。

我的 app.config:

我引用了以下程序集:
quartz.dll,版本 2.01.100
common.logging.dll,版本 2.0.0.0
common.logging.log4net.dll,版本 2.0.0.0
log4net.dll,版本 1.2.10.0

我找不到给出错误的原因。欢迎所有帮助,显然我忘记了一些事情......

0 投票
1 回答
1493 浏览

unit-testing - 单元测试:Quartz.net Fire 按需触发

我正在为预定的工作进行单元测试,我正在使用 Quartz.net,我是这个库的新手。

我需要强制触发器按需触发,以便执行作业并且我可以检索测试结果。我正在使用SimpleTriggerImpl,并且我尝试通过设置来触发触发器trigger.StartTimeUtc = DateTime.UtcNow,但是没有调用作业 Execute 方法。我怎样才能做到这一点?

谢谢

0 投票
2 回答
6359 浏览

c# - Quartz.NET 只执行一次作业

我正在尝试在 Quartz.NET 2.0 中进行简单的计划作业

我读过一个类似的问题,但对我没有用。

问题是作业在 StartAt 触发器后只执行一次。

这是我的代码:

这项工作很简单......但为了测试它,我不得不提出一个错误,该错误被单独捕获和处理,并且不影响实际工作。

在它第一次运行作业后,它被阻塞了

在 SimpleThreadPool 的 Run 方法中。

有什么建议么?

PS:该应用程序是 WCF IIS 托管服务。

编辑:

还是行不通。

同样的问题。

0 投票
1 回答
7529 浏览

c# - Quartz.NET 设置 MisfireInstruction

我正在使用 Quartz.NET 在 C# 中工作,并且在 CronTrigger 上设置失火指令时遇到问题。我正在运行安装了 Quartz DB 的 SQL 后端。我有以下代码可以很好地创建作业和运行调度程序。

我可以访问的唯一错误指令是trig.MisfireInstruction哪个是 int,我无法设置它。还有一些从WithMisfireHandlingInstructionCronScheduleBuilder 开始的函数。

0 投票
3 回答
21955 浏览

c# - 如何在 Quartz.Net 中向类发送参数

我使用 Quartz.Net(版本 2)在每天 8:00 和 20:00(IntervalInHours = 12)在课堂上运行一个方法

一切都很好,因为我使用了与 Quartz.Net 上的教程相同的作业和触发器,但是我需要在类中传递一些参数并根据这些参数运行方法。

谁能帮助我在使用 Quartz.Net 时如何使用参数?

0 投票
1 回答
1189 浏览

quartz.net - quartz.net 配置作业类型参数的第二个值是多少?

我正在尝试在我的网络项目中使用 Quartz.net。我这样配置我的应用程序:

但由于工作类型声明,它不起作用。我的 Job 类的定义如下,它的命名空间是 ReportingPortalBll.Jobs

在我将其更改为 ReportingPortalBLL.Jobs.CRMCalledMoreThanOneJob 后,ReportingPortalBLL(没有 .Job)运行良好。

我查看了文档,但找不到 job-type 参数的第二个值表示的内容。我应该在第二个参数上写什么?下面表示的第二个值是什么意思?我将在我的其他项目中使用 Quartz,所以很高兴知道如何轻松配置它。