【发布时间】:2011-02-26 07:53:32
【问题描述】:
我正在编写一个脚本,需要在一天中的随机时间调用,但不知道如何实现。
我不想浪费服务器资源来每分钟运行一个 cron 作业。
我希望随机调用脚本,因此提前一个月生成随机时间,然后为每个时间创建 cron 作业不是我想要的。
而且这个脚本每天只需要执行一次。
提前致谢!
【问题讨论】:
我正在编写一个脚本,需要在一天中的随机时间调用,但不知道如何实现。
我不想浪费服务器资源来每分钟运行一个 cron 作业。
我希望随机调用脚本,因此提前一个月生成随机时间,然后为每个时间创建 cron 作业不是我想要的。
而且这个脚本每天只需要执行一次。
提前致谢!
【问题讨论】:
是否每次运行都使用随机时间的“at”提交进一步的运行? 这不能保证它每天都运行,但你可以得到它作为一个平均值。
【讨论】:
如果您可以访问它,请在目标脚本运行时修改 crontab 文件并添加随机时间。
【讨论】:
这将添加一个 cron 作业:
echo "* * * * * /path/to/script" | crontab
您需要生成一个适当的时间而不是* * * * *(否则它将每分钟运行一次)。
echo "* * * * * /path/to/script" | crontab -r
将删除该作业。所以,现在你需要从 PHP 脚本中调用它们,我不记得它是如何在 PHP 中完成的。
编辑
http://php.net/manual/en/function.system.php
更多编辑
每次脚本执行时,最后两个操作可能是删除当前的 cron 作业并为第二天生成另一个。
更多编辑
http://codepad.org/Z1B2v4lF -- 这就是我在 Python 中的做法。这可能每天运行一次以上。如果必须每天只运行一次,您也可以添加一个日期值。
【讨论】: