【问题标题】:TYPO3: wrong cronjob timingsTYPO3:错误的 cronjob 计时
【发布时间】:2016-11-21 18:35:03
【问题描述】:

我在我的 TYPO3 调度程序中发现了一个非常奇怪的行为: 我创建了一个频率为* */1 * * * 的任务,因此它应该每小时运行一次。但是在“下一次执行”中,它被写入,它将在下一分钟运行。 所以我尝试使用“真实”秒,并将频率设置为“3600”(= 1 小时)。现在它显示下一次执行将在 3 分钟内。如果我使用“300”,它将在 4 分钟内运行。

这是 TYPO3 调度程序中的错误还是有人知道这里有什么问题?

我在 Debian 8.6、Apache 2、PHP 7 上运行 TYPO3 8.4。 在 crontab 中设置了以下行: */1 * * * * /usr/bin/php /var/www/fareith/htdocs/typo3/cli_dispatch.phpsh scheduler

【问题讨论】:

  • 试试1 * * * * 它应该在每小时的第一分钟运行。
  • 谢谢,这行得通 - 即使我使用 0 * * * * - 并暂时解决了我的问题,但无论如何,这是一种奇怪的行为,不是吗?

标签: php cron typo3 scheduler


【解决方案1】:

您需要熟悉 crontab 条目的语法。该语法是:

* * * * * command
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── day of week (0-7, sunday is 0 or 7)
│ │ │ └────── month (1-12)
│ │ └──────── day (1-31)
│ └────────── hour (0-23)
└──────────── minute (0-59)

如果您在任何地方设置了一个值来修复该部分的执行日期/时间。可以通过用逗号分隔多个值来设置多个值(没有空格!)。

除此之外还有符号*/3(星号除以值),这意味着:在每个值单位(*/3 首先意味着:每三分钟)
所以像*/1 * * * * command 这样的条目意味着:每分钟执行一次“命令”。
*/1 与星号相同*:在每个单元执行。

对于每小时执行一次,您需要通过设置任何固定值来固定分钟值。

对于秒的值:下一次执行时间是根据调度程序条目的上次执行(或创建时间)计算的。

最后:
调度程序作业的运行频率不能超过调度程序自身运行的频率。通常,调度程序每分钟启动一次(如您的示例所示),但在某些提供商处,调度程序仅每 15 分钟调用一次(*/15 * * * * php ..../cli_dispatch.phpsh scheduler)。即使您在 TYPO3 中配置作业以更频繁地启动,它们也只会在调度程序本身的下一次运行时启动。

【讨论】:

  • 感谢您的努力,但我知道 cron 和 crontab 是如何工作的……这不是我问题的答案
  • 如果您配置* */1 * * * 并想知道为什么每分钟执行一次作业,我必须假设您不熟悉 crontab 语法。另一方面:SO 不是一个错误跟踪器,而是一个获取问题解决方案的平台。如果您的“问题”是:“TYPO3 中可能存在错误”,您需要在 slack 上提问。
  • 我猜你没有阅读整个问题。顺便说一句:typo3-slack 规则:“在 stackoverflow 上发布问题,至少添加 #typo3 作为标签 -> 在typo3-cms 中粘贴链接并等待有人回答”。
猜你喜欢
  • 2021-11-26
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
  • 2016-12-31
相关资源
最近更新 更多