问题标签 [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.
quartz.net - quartz.net 2.0 作业不并行执行
我们通过 xml 文件配置了 3 个quartz.net(版本 2.3.3)作业
IInterruptableJob Job1Class 被标记为 DisallowConcurrentExecution 并被 xml 文件中的 Job1 和 Job2(当然具有不同的作业数据)使用。
IInterruptableJob Job3Class 由 Job3 在 xml 文件中使用。
quartz.threadPool.threadCount 通过配置文件设置为 6。
在 3 个作业中,有 2 个作业长时间运行,我们要求所有 3 个作业都应该并行执行,但很多时候我们观察到它不会并行执行。那么为什么它不并行执行。
下面是示例 xml 文件。
c# - 将异步方法作为 Quartz.NET 作业运行并处理对象问题
我在这种情况下使用 Quartz.NET(需要提到的GrabberContext
是一个DbContext
扩展类):
这就是工作:
GrabService
实现是这样的:
但是当执行到line #1
我得到这个错误:
ObjectContext 实例已被释放,不能再用于需要连接的操作。
请问有什么想法吗?
c# - 如何为长时间运行的进程正确实施 Quartz.Net 作业生命周期?
我正在使用 Quartz.Net 在 IIS 工作进程(IIS 8.5)中实现一些异步处理。一项特定的作业可能需要 10 分钟以上才能运行并进行大量处理。
以下代码片段说明了我如何处理工作生命周期。
时间表定义
应用程序池关闭处理
Global.asax.cs 连接起来
作业步骤说明
最初,我在Application_End
调用时停止了调度程序,但我意识到当应用程序池即将被终止时调用了它,所以当应用程序池被通知它的关闭已启动时我移动它。
我已将应用程序池保留为关机时间限制(90 秒)的默认值。
作业被配置为不允许并发执行。
我想实现以下目标:
- 避免在实际执行期间强制杀死工作
- 最小化两个工作进程同时运行的时间(关闭一个与刚刚开始处理新请求的一个并行)
问题:我是否正确管理了预定的工作,或者我可以进行改进吗?
c# - Quartz.net 并不总是有效
我正在使用 Quartz.net 库的简单调度程序。我有 7 个不同的触发器。顺序是这样的。
第一:每 120 分钟一次。
第二:每12小时一次。
第三:每5分钟一次。
第四:每3分钟一次。
第五:每29秒。
第六:每10秒。
第七:每5秒一次。
如您所见,这有点复杂。我有这样的问题。第一个触发器需要每两个小时工作一次。但经过几次运行后,它会自行停止。它根本不起作用。其他人都在工作,他们没事。我很抱歉我的英语不好。
c# - In Quartz.net, how can I delay all scheduled jobs by a certain time span?
I am using Quartz.net to schedule various API calls. The API I am using restricts the number of requests that can be made per time period and if that is exceeded, then my account is penalized for the next minute (no requests can be made).
If I ever receive a notification that I have made too many requests and my account will be throttled for the next minute, I will need to ensure that no scheduled jobs fire during that period. How can I best delay firing of all scheduled jobs by a minute or two?
I was originally intending to call Scheduler.GetTriggerKeys() and loop over and update every existing trigger like so:
Is this the right approach or would it be better to simply stop the scheduler for the same time period and then restart it?
quartz.net - Quartz.NET 2.6.1:多个触发器同时触发同一个作业,但只需要一个触发器发生
我有多个Triggers的Jobs。在某些情况下,触发器会重叠。当 Quartz.NET 确定需要触发重叠的 Trigger 时,会针对每个 Trigger 执行该方法。IJob.Execute(IJobExecutionContext context)
有没有办法防止这种重叠?
提前致谢。
.net - Quartz 作业在添加新作业时进入错误状态,而某些实例使用旧代码运行
我已经用 .net 实现了调度程序石英,并拥有一个 HA 环境,其中多个调度程序实例正在工作。在使用创建了新作业的新代码升级我的实例时,由于集群的实现,新添加的作业进入 ERROR 状态,它有时会在具有旧代码的实例上触发。
请帮忙
configuration - Quartz 2.6.2 和 .NET Core?- 错误“无法初始化数据源”
我正在使用旧版本的 Quartz.NET (v2.6.2) 和 .NET Core(或者可能是 .NET5)。尝试使用 StdSchedulerFactory.GetScheduler 时出现错误。我所有的配置设置都在我的 appsettings.json 中,我在其中使用这些值填充 NameValueCollection 并使用 DI 将它们注入到我的类中。
我正在使用这样的 StdSchedulerFactory,其中 Settings.Properties 是包含所有配置设置的 NameValueCollection:
在GetScheduler方法上,引发错误“无法初始化数据源:默认值”。
疯狂的是,这段代码在使用常规 web.config 提供配置设置的 Framework 4.x 项目中运行良好。此外,当我在上面的代码中更改为使用 Quartz 3.X 时,appsettings.json 中的配置可以正常工作。似乎我混合和匹配两个版本导致 Quartz 不知道如何检索某些值的问题?
有没有办法手动构建我的调度程序而不使用工厂?
谢谢!
windows-services - Quarz.net Windows 服务无法通过 xml 配置文件配置作业
我有一个 Windows 服务,它(至少曾经)从 xml 配置文件创建作业。但是我无法让它工作。
这是我的 xml (jobs.config)
这是创建我的工作的代码。
无论我尝试什么,价值count
总是为零,我的工作没有开始。配置文件的路径是正确的(我尝试将文件重命名为 1jobs.config 并得到“找不到文件异常”。
我从文档中尝试了几个配置和代码示例,结果是一样的。将属性移动到 myservice.exe.config 也不会改变任何内容。Jobs.config 对每个人都有读取权限。
但是,如果我在 WinForms 应用程序中尝试相同的代码和相同的配置,它会像预期的那样工作。