每 X 秒触发一次的相应 Cron 表达式是什么,其中 X > 60?

发布于 2024-09-04 21:32:21 字数 299 浏览 4 评论 0原文

我希望我的作业每 X 秒执行一次,作业和 X 之间存在一对一的匹配。此外,在运行时期间,可以按照自己的时间间隔注册新作业。

我尝试为这种情况编写 cron 表达式,但在文档中写道,秒值不能超过 59。因此 cron 表达式如下所示:“0/63 * * * * ?”无效。

乍一看,这个问题的解决方案似乎是这样的表达:“0/3 0/1 * * * ?”,但它的含义完全不同:每分钟每三秒触发一次作业。

你能建议什么是正确的解决方案(cron 表达式)吗?我知道我可以只使用简单的计时器,但我必须使用 Quartz 来使用 cron 作业。

I want my jobs to execute in every X seconds, there's one to one matching between job and X. Also during runtime there can be registered new jobs with their own intervals.

I've tried to write cron expression for such scenarios, but in documentation there's written that value of seconds can't be more than 59. So cron expression like this: "0/63 * * * * ?" isn't valid.

At first sight solution of that problem seemed to be expression like this: "0/3 0/1 * * * ?", but it means completely different thing: trigger job in every three second of every minute.

Can you suggest what is the right solution (cron expression) for that? I know I could use just simple timers, but I've to use cron jobs using Quartz.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦巷 2024-09-11 21:32:21

Quartz cron 语法旨在表达基于标准 24 小时 60 分钟时钟的计时。它不适合“每n秒”,其中n可以是任何值。你无法使用 cron 表达式来做到这一点。

如果您需要使用 Quartz 来执行此操作,则应该使用 SimpleTrigger,而不是 CronTrigger。你实际上没有选择,除非你想使用一个非常复杂的重叠的、人为推导的 cron 表达式的集合。

The Quartz cron syntax is designed to express timing based on the standard 24 hour, 60 minute clock. It's not suitable for "every n seconds", where n can be any value. You're not going to able to do this with cron expressions.

If you need to do this with Quartz, you should use SimpleTrigger, not CronTrigger. You don't really have an option, unless you want to use a hugely complex collection of overlapping, artificially-deduced cron expressions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文