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