gpt4 book ai didi

php - 每 10 秒运行 cron 作业 n 次然后停止

转载 作者:行者123 更新时间:2023-12-03 23:05:33 24 4
gpt4 key购买 nike

我有一个特殊的情况,我需要查询服务以获取每天特定时间的 n 个用户的信息。问题是,如果我一次执行所有这些操作,将使服务脱机/崩溃。

因此,为了克服这个问题,最好每 10 秒左右为 x 个用户运行一次,直到 x = n,然后停止。

我可以设置 1 个每天运行的 cron 脚本,另一个每 10 秒运行一次。例如,每日脚本会将数据库中的值设置为 1(“开始查询”)(默认值为 0 表示关闭),然后第二个脚本(每 10 秒运行一次)检查该数据库值是否为 1。设置为 true 后,它会迭代一次查询服务 x 个用户的用户,并递增同一数据库表中的另一列以跟踪它在列表中的位置。

这个解决方案的问题(根据我的说法)是每 10 秒运行的第二个脚本必须每次查询数据库以查明“开始查询”设置是否设置为 1。这可能是相当处理器重的。有没有人有更好的解决方案?

注意:代码是用 PHP 编写的 - 由于服务器上 php 脚本的最大执行时间,无法使用 sleep

我同样可以在 python 中执行此操作,cgi 脚本是否有最大执行限制?

最佳答案

为什么不只让一个 cron 脚本每天运行一次,然后每十秒调用另一个脚本,直到另一个脚本说它已完成(例如返回一个值,表示“没有更多需要处理”)?

或者一个每天运行的脚本,只是循环运行用户 block ,让每 X 个用户 sleep()...

请记住,使用 CLI version of PHP 时您不受执行时间限制的限制,并且可以使用标准错误和输出流等与 cron 和其他 shell 脚本很好地交互。

例如,对于第一种方法,您甚至不必使用 PHP 来进行“控制”脚本——一个非常简单的 shell 脚本,它只是循环、调用您的 PHP 脚本,然后休眠并检查“success”返回值(由 PHP 脚本的 exit () 函数返回)就可以了。

关于php - 每 10 秒运行 cron 作业 n 次然后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com