Loop in php script from cron?
我有一个wordpress php脚本作为cron作业运行。目前,每个域无限期地每分钟运行一次。
1 | /usr/bin/php -q /home/domain1/public_html/wp-content/plugins/tdw/postit.php > /dev/null 2>&1 |
问题是我的服务器越来越大,有50个域,并且各个分支之间相互运行,从而导致错误或数据库崩溃。
有没有一种方法可以使它按顺序运行?例如运行domain1脚本等待一分钟,然后运行domain2 ...在URL列表中循环。
感谢您的帮助。
我通过cron在NAS上执行的脚本遇到了类似的问题,结果是我的查询中有错误,我确实错过了引号
1 | WHERE myvarcharfield = 12345 |
istead
1 | WHERE myvarcharfield = '12345' |
不确定为什么脚本似乎仍然正确执行并且在那之后中断了循环,但是它也没有返回错误
将它们放入bash脚本中,例如
1 2 3 4 5 6 7 8 9 | #!/bin/bash /usr/bin/php -q /home/domain1/public_html/wp-content/plugins/tdw/postit.php > /dev/null sleep 60s /usr/bin/php -q /home/domain2/public_html/wp-content/plugins/tdw/postit.php > /dev/null sleep 60s /usr/bin/php -q /home/domain3/public_html/wp-content/plugins/tdw/postit.php > /dev/null sleep 60s # and so on... |
,然后从cron开始。
如果除域名之外,其他所有路径都一样,您还可以使用php脚本,该脚本为每个域生成正确的路径,然后通过exec()执行脚本。例如,它可以通过PHP的目录功能遍历/ home文件夹的内容。这样,添加域时不必更新脚本。
这样的脚本看起来像
1 2 3 4 5 6 7 8 9 10 11 12 13 |