在大型脚本中执行批处理命令作为队列形式(cron)

时间:2013-10-19 05:34:57

标签: php shell batch-file nginx cron

我正在创建一个远程文件上传脚本,它将一个或多个选择的文件上传到多个文件主机,我正在通过一些cli脚本执行此操作,因此所有主要命令都是使用exec函数执行的。因此,我所做的是根据用户输入从一个php文件创建我的命令,并将命令保存在.json文件中 然后我有一个单独的文件手动或通过cron运行,以执行每个json文件的批处理命令。但是有时候如果我用3个文件主机一次输入50个文件,要执行的命令几乎是100-150 +并且很多时候由于nginx / php超时或其他原因导致CLI脚本只是中途停止或暂停然后我必须重新启动整个批量重新上传所有文件,而不是它结束/暂停的点 有没有更好的方法来管理这种类型的长命令队列,并可能从上次暂停或中止的位置恢复它? 我认为的一种方法是在单个json文件中创建所有命令,我为每个命令创建一个文件并将其保存在为该队列创建的新文件夹中,然后cron脚本选择一个命令文件,执行它,如果它成功,删除文件并选择下一个文件(使用循环)

这是我唯一可以选择的最佳选择吗?

1 个答案:

答案 0 :(得分:0)

检查你的php.ini以增加最大执行时间或函数set_time_limit