我有一个服务器,它在一天中的特定时间运行一个cron作业。我想得到时间,直到下一个工作将执行。我查看了npm中的cron和node-cron包,但它们似乎没有这个功能。
我如何为这些包自己实现此功能?
cron包允许您获取cron作业的下一次运行,因此可以使用它来确定下一次运行之前的时间。
这在cronjob.nextdates()函数中公开。
const CronJob = require("cron").CronJob;
const cronJob = new CronJob(
"*/30 * * * * *",
() => {
console.log("Timestamp: ", new Date());
},
null,
true,
"UTC"
);
setInterval(() => {
let timeUntilNextRunSeconds = cronJob.nextDates(1)[0].unix() - new Date().getTime()/1000;
console.log("Time until next run (s): ", Math.round(timeUntilNextRunSeconds));
}, 1000);
我目前遇到一个问题,而使用@调度(cron)注释在Spring。 此任务每天凌晨3点(周一至周五)执行: 03:00:00278-03:00:08269 03:00:08269-03:00:15451 我的问题是,为什么这个任务执行两次?我已经说过,它应该只在分钟“0”和“0”秒运行,但这似乎是错的(请参阅执行时间)。我有两个这样的任务,都有这个问题。有没有人知道发生这种情况的原因以及如何避免?
我已经创建了3个任务。Task3取决于Task1和Task2的结果。在调试代码时,它会正确执行,但在运行应用程序时,Task3会在Task1和Task2完成之前执行。 示例代码: 提前谢谢。
由来 Java中定时任务使用的最多的我想就是quartz了,但是这个框架太过庞大,而且我也不需要用到这么多东西,使用方法也是比较复杂(官方Demo我实在是无语……)。 用过Linux的crontab的人都知道,使用其定时的表达式可以非常灵活的定义定时任务的时间以及频率(Linux的crontab精确到分,而Quartz的精确到秒,不过对我来说精确到分已经够用了,精确到秒的可以使用Timer可以搞定
当你有许多服务器需要执行相同的 cron 作业时,不在同一时间运行它们通常是个好主意。 如果所有作业都要访问一个公共服务器,就会给该服务器带来大量负载, 即使这些服务器不会同时访问公共服务器,所有服务器也会在同一时间处于繁忙状态, 这可能会削减它们提供其他服务的能力。 Puppet 的 inline_template 函数允许我们使用 Ruby 的逻辑根据主机名为 cron 作业设置不同的运行时间
我使用Spring-Boot@Scheduled-Cron缓存从持久性存储中检索到的数据。 我有两个不同的任务, 在缓存中设置结果 清除缓存 Task1将每15分钟运行一次。我设置了cron-like 所以频率应该是 12: 00:00 12:15:00 12:30:00 现在,我想在Task1之前10秒运行Task2 ie 11: 59:50 12:14:50 12:29:50 我在尝试这个表达
问题内容: 我一直在寻找有关如何实现功能的示例,该功能使您可以在Go中的特定时间执行任务,但是我什么也找不到。 我自己实现了自己,并在答案中分享了它,以便其他人可以为自己的实现提供参考。 问题答案: 这是一个常规实现,可让您设置: 间隔期 小时打勾 分钟打勾 tick秒 更新:( 内存泄漏已修复)