问题标签 [job-scheduling]
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.
cron - 工作日的 CPanel Cron Job 设置
我是 cron 作业的新手,我想创建一个不会在周末运行的 cron 作业,比如周一到周五,每天早上 9:00 运行一次。我不确定格式。请有任何建议或帮助。
谢谢
c# - 替代轮询作业调度程序
我们在工作中需要一个工作服务器,我目前正在玩 Quartz.net,但创建自己的想法对我很有吸引力。至少了解 Quartz.net 可能在幕后做的事情不会损害我更有效地使用它的理解/机会。
所以我的问题是你将如何在没有轮询的情况下在线程上获取和解雇工作?如果您每 2 分钟检查一次“工作商店”以查找需要解雇的工作,您可能会延迟大约 2 分钟。如果您减少轮询时间,则会增加您的工作商店的压力,并且仍然无法获得真正的开始时间。您可以在接下来的两分钟内预加载作业,并让线程在剩余时间内进入睡眠状态,以便它们在适当的时间开始,但如果您的轮询时间很长(删除、重新安排等),这似乎很笨拙并且容易出现问题。我正在剖析 Quartz 以弄清楚它是如何做到的,但我想知道我是否遗漏了一些基本的东西。
编辑:
像 Kevin 最初描述的线程结构似乎是你应该如何做一个工作服务器。它以最少的开销为您提供最大的灵活性。因为线程对于大多数人来说都是一个皮塔(也许只有我 :) 更简单的轮询示例将在 90% 的情况下完成工作,但代价是失去灵活性和更多开销。
另一方面,除非您将其设为单线程并执行单个作业,否则无论如何您都必须处理线程。还不如全力以赴,找出信号。
我也同意凯文的观点,即您在轮询数据库示例中声称免费获得的东西并不是真正免费的。如果它是线程/等待应用程序,您将像编写代码一样编写代码。如果您的轮询数据库作业服务器在作业过程中发生故障怎么办?两者都将依靠一些持久的存储来跟踪他们的状态以防发生灾难。
如果您将“jobstore”提升到一个抽象级别并且它不是基于正常的 ACID(正确的术语?)数据库会怎样。现在我相信你的很多“免费”东西都不再可用(交易?)。
grails - 在 grails 框架的 Quartz-Job 中使用 createLink() 方法?
我想在 grails 中的 Quartz-Job 中创建一个链接,如下所示:
但是在运行时我只会遇到异常
org.quartz.JobExecutionException:没有方法签名:packagename.RefreshStatsJob.createLink() 适用于参数类型:(java.util.LinkedHashMap) 值:[[controller:auto, action:show, id:1]]
我应该如何在这个类中创建链接?我需要导入哪个包?
java - 如何使用图论来调度执行顺序?
我正在设计一个应用程序,它执行一系列插件。插件的执行可能/可能不依赖于另一个/其他插件的执行。即一些(不是全部)插件期望其他插件在它开始执行之前被执行。
我需要导出正确的执行顺序,以便在它所依赖的插件之前不执行任何插件。
我相信图论可以用来解决这个问题(插件作为顶点,依赖作为边,并使用某种遍历导出执行顺序)。
我计划使用 JGraphT,因为该应用程序是用 Java 开发的。
解决此案的任何帮助或指示???我并不期待整个 java 代码,任何关于图论(使用算法)的指针都会同样有帮助....
谢谢 !!!
[解决方案:] @Artium 导致解决方案,这个链接显示了一个非常相似的实现。
mysql - 不是mysql的作业存储引擎?
我在网站上做了很多后端工作。我使用 mysql 来存储这些作业的结果以及所有中间步骤。无论 mysql 是否启动,这些作业都能够完成。问题是,如果 mysql 在任何给定时间出现问题,正在运行的作业状态就会被搞砸,并且它们的结果是无用的(因为它们是不同位置的编码文件)。
是否有某种分布式存储引擎可以用来存储中间数据和最终结果作为 mysql 的备份,所以如果 mysql 选择废话,我可以理解结果数据。
php - 如何将 Cron 脚本设置为每天运行
我有一个 PHP 文件,我想每天运行一次。我知道为了做到这一点,我需要设置一个 CRON 作业。据我了解,应该有一种方法可以在我的虚拟主机中设置 CRON 作业,但我不知道它在哪里。我看到的关于 CRON 作业的所有内容都与从我的本地计算机上运行它有关。这里缺少什么链接?如何格式化文件名?非常感谢有关如何完成此操作的任何其他相关信息。
php - 如何在 PHP 中触发将来的事件
我编写了一个 PHP 应用程序,它将语音消息广播到数据库中的电话号码。
现在我想为它添加一个“计划”功能。这基本上意味着管理员将能够为特定的语音文件设置未来的日期和时间。语音消息将在该日期和时间播放。
请问我该如何编码?一些代码片段将不胜感激。
谢谢,阿米特
nservicebus - 如何使用 NServiceBus 安排任务每天运行
有没有使用 NServiceBus 安排任务的优雅方式。我在网上搜索时发现了一种方法。NServiceBus 是否提供用于调度的内部 API。
php - 具有复杂依赖关系的任务调度
我正在寻找一种调度任务的方法,其中一旦完成了几个先前的任务,任务就会开始。
我有数百个“收集器”进程,它们从各种来源收集数据并将其转储到数据库中。一旦这些完成收集(从 1 秒到几分钟不等),我想立即启动一堆“数据处理”过程来分析和理解数据库中的数据。当所有这些都完成后,我希望开始一项最终任务并向我发送一封包含摘要数据的电子邮件。
我目前正在使用 Gearman 队列并在我期望“收集器”进程完成后启动计时器上的数据处理任务,但这意味着处理步骤在 10 分钟后开始,即使收集器进程在 3 后完成(或更糟糕的是,还没有完成)。
理想情况下,我可以指定特定规则,例如“在进程 A 和(B 或 C)完成时启动进程 X”,或“在 95% 的指定进程已完成或 10 分钟过去时启动进程 Y”。
需要自动创建流程和依赖项,因为它每次都会使用不同的参数运行(即,我每次都不会进行相同的计算)。
我可以自己使用队列和监视器编写某种图形依赖框架,但这似乎必须已经解决,我正在寻找任何使用过我描述的东西的人。
cron - 如何定义用户在申请中的工作频率?
我有一个必须重复启动作业的应用程序。但是(是的,如果没有但是......)我希望用户在应用程序中定义他们的备份频率。
在最坏的情况下,他们将不得不选择:
- 每周,
- 日常的,
- 每12小时,
- 每 6 小时,
- 每小时
在最好的情况下,他们应该能够使用 crontab 表达式(例如参见文档)
这个怎么做?我是否每分钟启动一项检查上次执行时间、频率的作业,然后在需要时启动另一项作业?我是否创建一种将由 masterjob 执行的队列?
欢迎任何线索,想法,意见,最佳实践,经验!
编辑:使用 Akka 调度程序解决了这个问题。好的,这是一个技术解决方案,而不是设计答案,但一切都很好。
每个用户定义的重复都是一个参与者,每个周期都向新参与者发送消息以执行实际作业。