问题标签 [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 投票
6 回答
17598 浏览

quartz.net - Job 构造函数抛出异常后从触发器 ERROR 状态中恢复?

在使用 Quartz.net 调度作业时,我偶尔会在实例化作业时收到异常。这反过来会导致 Quartz 将作业的触发器设置为错误状态。发生这种情况时,触发器将停止触发,直到发生一些手动干预(重新启动服务,因为我正在使用内存中的作业调度)。

如何防止设置错误状态,或者至少告诉 Quartz 重试处于错误状态的触发器?

异常的原因是由于获取传递给作业构造函数的配置数据所需的不稳定的网络调用。我正在使用自定义 IJobFactory 来执行此操作。

我已经看到其他没有解决方案的参考:

0 投票
1 回答
83 浏览

.net - 取消 Quartz.Net 工作链的普遍接受的方法是什么?

我有一系列使用监听器链接在一起的 Quartz.Net 作业:

  • 作业 A 执行...
    • 调用 JobAListener.JobWasExecuted() 方法,然后执行 Job B
  • 作业 B 执行...
    • 调用 JobBListener.JobWasExecuted() 方法,然后执行 Job C
  • 等等...

假设作业 A 以这样的方式失败,我不想重新解雇该作业并且我想短路作业链的其余部分。换句话说,我想在作业 A 失败后停止执行链的其余部分。

这样做的正确方法是什么?

0 投票
2 回答
201 浏览

quartz.net - Quartz.net 调度器

我们已经安装了quartz.net 调度程序服务并配置了一个(内存)作业以每天晚上10 点运行。如果托管此服务的服务器重新启动,是否有办法在服务启动后强制作业运行?在正常情况下,作业应按计划在晚上 10 点触发,但每当服务器/服务重新启动时,我们希望作业立即运行,即使当时未计划运行。如果有一些配置值可以实现这一点,那将是最好的选择。

0 投票
2 回答
1710 浏览

c# - 如何将数组作为参数发送到 C# 中的石英计划作业?

我在asp.net mvc中使用quartz.net每1分钟执行一些预定的作业,通常你可以在这段代码中向你的作业发送一些参数我将两个字符串参数作为键/值发送到我的作业

我想向预定作业发送一个字符串数组而不是简单的字符串值,你有什么想法吗?或样品?

谢谢你。

0 投票
1 回答
576 浏览

asp.net-mvc - 如何确定应用程序池是否已终止或暂停?

我有一个 ASP.NET MVC Web 应用程序,它使用 Quartz.net 库按每日计划执行任务。我很快发现 IIS 在一段时间不活动后终止/暂停应用程序池。我已经更改了该应用程序池的配置以避免这种行为,如下所示:

  • 启动模式:始终运行
  • 空闲超时(分钟):0
  • 空闲超时操作:挂起
  • 生成回收日志条目:真 [对于所有子属性]
  • 常规时间间隔:0
  • 具体时间间隔:TimeSpan[] Array [empty]

我可以看到的唯一可能仍然会杀死我的应用程序的属性是

  • Ping 启用:真

它被设置为杀死任何在 90 秒内没有响应的工作进程。

我对更改此属性犹豫不决,因为我不想引入资源泄漏或类似的东西。

这些更改在过去几天似乎有效,但今天早上我的工作未能再次执行。

所以我的问题是,我可以在事件查看器或其他地方寻找什么表明进程/应用程序被暂停或终止?

我不是在问如何改进我的实现——我知道具有持久存储的 Windows 服务或计划任务会更好。我想了解为什么会发生这种情况,以及在哪里查找应用程序池停止或启动的时间和原因。我似乎在事件查看器中找不到任何东西,但也许我找错了地方。

提前致谢。

0 投票
1 回答
1284 浏览

c# - 无法在 127.0.0.1 端口 555 上打开 TCP 通道(SocketException: No such Host Is Known)

我已经在127.0.0.1port上运行 Quartz 调度程序 Windows 服务大约 2 年了555。从几天前开始,我无法再启动我的服务。当我查看代码时,我发现我无法启动一个TcpChannel对象。

当我在我的 cmd 上执行 a时,我在ListeningUsednetstat中都找不到地址。我在防火墙上也找不到任何与此端口有关的新规则。

该服务基于 Quartz.net 调度程序。

服务日志:

更新:主机文件

更新 2:quartz.config

0 投票
2 回答
5399 浏览

c# - 如何在 Quartz.net 中使用多线程

我打算使用quartz.net 来处理文件。

  • 我每小时会收到 1 个或多个文件,每个文件将有 1000 行不同国家的行。
  • 我想读取这些行、验证、处理并将其插入到多个表中。
  • 我想选择 1 个文件,并为该文件中的每个不同国家/地区创建一个线程。这样 1 个线程将处理 1 个国家/地区的所有数据。
  • 在给定时间,线程数不应超过 5 个。

现在我如何在quartz.net 中定义它?下面是我的代码,我在其中逐个文件和逐行浏览每个文件,并且我没有做任何多线程

安排工作

工作

我是否应该有一个主要作业来循环遍历文件,然后在作业中定义多个作业来处理每个国家/地区?这是如何在石英中实现多线程?

调度主作业

主要工作

为每个国家/地区创建多个工作

那么我应该创建多个作业来实现多个线程同时运行吗?请帮助我在一个文件中运行 5 个并发线程来处理每个不同的国家/地区。

0 投票
1 回答
243 浏览

c# - 如何在 Quartz 中指定多个第 n 天?

我要求在每个月的第三个星期二和第三个星期四每 3 个月执行一次任务。

我想出的 CRON 表达式是:

但是,当我尝试使用以下方法解析它时Quartz 2.2.1

我得到:

FormatException:未实现对指定多个“nth”天的支持。

关于如何在不必诉诸两个单独的 CRON 作业的情况下实现这一点的任何想法,例如:

0 投票
1 回答
350 浏览

windows-services - 我可以在 2 台机器上使用 Quartz 调度程序运行 Windows 服务吗?

  • 这在免费版本中可用吗?或者如果在企业版中,安装它的任何详细信息/指南?
  • Quartz 如何接手工作?两个实例是否有可能运行相同的作业?
  • 如果作业仍在执行,并且触发发生,作业是否会在单独的线程中执行,我可以避免这种情况吗?我的意思是如果有工作正在进行,下一个触发器应该首先等待工作完成。我怎样才能做到这一点?

我正在探索此选项以在多个 Windows 服务之间共享负载,以便只有一个服务器没有负载。我是这种架构的新手,所以我乐于学习。欢迎提出建议。

0 投票
1 回答
371 浏览

quartz.net - Quartz.Net:防止不同作业类型同时运行

我们的系统使用 Quartz.Net 进行调度,并且有多种类型的作业(例如:作业类型 A、作业类型 B、作业类型 C)。我们希望避免某些类型的作业同时运行:

  • 场景一:A 类作业不能与其他 A 类作业同时运行。
  • 场景 2:类型 B 的作业不能与类型 C 的作业同时运行。(如果发生这种情况,那么我们希望 C 作业“等待”直到 B 作业完成)

我知道我可以使用该DisallowConcurrentExecutionAttribute属性来实现场景 1。但我不知道如何使用内置的 Quartz.Net 功能来实现场景 2。

我可以将工作线程的数量限制为 1,但这会杀死所有并发,这是不希望的。(允许 A 作业与 B 作业同时运行)

当然,我可以在作业中编写此逻辑,但最好我不希望 B 类作业知道 C 类作业。