有没有Cron工作替代方案?

2022-08-30 23:33:01

Cron Jobs在我的服务器上已关闭,服务器管理员不接受打开它。因为,cron 作业会减慢服务器等速度。所以,我需要一个替代方案。

我必须每2分钟运行一个php文件(cron.php)。

那么,我该怎么做呢?


答案 1

尽管这个问题是前一阵子发布的,但我只是遇到了同样的问题,但找到了一个解决方案(基于Kissaki的答案,谢谢!),并认为我会把它发布在这里给任何仍然在寻找可能的解决方案的人。

先决条件:

  • SSH 访问

代码(python):

from subprocess import call
import time
while True:
    call(["php","cron.php"])
    time.sleep(120)

答案 2

取决于您对盒子的访问权限。

PHP本身将无法很好地独立运行。你可以做一个脚本,试图不断增加它的执行时间,定期休眠和检查新作业。但这是次优的,因为您必须通过浏览器访问它一次,并且脚本必须确保它只运行一次。

通过shell访问,您可以在shell上运行php脚本,这将防止它从公共调用并且必须通过webbrowser运行它。

通过 shell 访问,您还可以运行一个为您提供 (cron) 服务的程序。无论是Java,Python还是其他程序。

Cron 作业不应始终降低服务器的速度。这取决于运行的作业。如果您的作业非常昂贵,您的管理员可能无法解决已关闭的cron作业并再次减慢服务器的速度,并且可能会采取进一步措施来阻止您解决问题。


推荐