【问题标题】:cronjob running every minutecronjob 每分钟运行一次
【发布时间】:2012-08-26 07:33:46
【问题描述】:

问:设置cronjob每分钟运行一次脚本可以吗,否则会导致过载?
我想每分钟运行一次的原因是:

公共脚本:
* 客户添加(例如:)广告
* 脚本在mysql数据库中插入数据(when = time + 2hrs, activated = 0, ...)

Cronjob 运行:
* 脚本检查mysql数据库,WHERE时间低于"NOW"activated = 0并获取该信息,将其插入另一个表,插入时设置activated = 1..(activated = 1发生在第一个表中(其中公共脚本放置信息))

所以如果这个脚本每分钟运行一次会导致过载吗?

如果是:
Q2您是否可以建议其他选项(关于更改脚本的工作方式)?

谢谢!

【问题讨论】:

  • 对两者使用同一个表并只使用 where 子句 (WHERE WHEN
  • @Najzero 会更容易,但问题是"another table" 已经有这么多条目......我将不得不更改公共“显示”脚本..

标签: php mysql cron sleep crontab


【解决方案1】:

每一分钟都可能是多余的,但它不会使计算机超载。您正在执行的只是 1 个SELECT 和一些INSERTs。这最多需要几秒钟。

但是,您可以进行的一项设计更改是,通常在关系数据库中的表之间复制数据是没有意义的。您可能只想使用外键引用数据,并使用JOIN 语句通过其他信息访问它。在这种情况下,您不会在 cron 作业中复制任何内容;你只需插入一个外键。

【讨论】:

  • 如果系统已经超载并且这些作业开始堆积起来,那么可能会出现并发问题,具体取决于实际执行的操作(尤其是 mysql)。在这种情况下,系统会遇到更多问题,但首先进行防御性编程可能会很好。
  • 即使在这种情况下,cron 本身也只是导致过载的一小部分,不是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 2014-11-02
  • 2023-03-16
  • 2015-04-25
  • 2016-04-29
  • 1970-01-01
相关资源
最近更新 更多