为了账号安全,请及时绑定邮箱和手机立即绑定

通过 cronjob 运行 PHP 脚本并避免重复的 PHP 进程 (flock)

通过 cronjob 运行 PHP 脚本并避免重复的 PHP 进程 (flock)

PHP
qq_遁去的一_1 2023-03-11 16:37:06
我一直在阅读有关如何运行 cronjob 并避免重复执行 cronjob 的信息。意思是,如果 cronjob 已经在运行,请不要运行它的另一个实例。如果 cronjob 没有运行,则根据 cronjob 计划再次开始运行该进程。flock()是这样做的解决方案,如此处所述:https ://stackoverflow.com/a/33416116使用 flock 设置 cronjob 的方法如下:* * * * * flock -n /tmp/script.lockfile /usr/local/bin/script但是,当我尝试使用 flock 在 cronjob 中设置我的 PHP 脚本时,它不起作用。我设置如下:*/10 * * * * flock -n /tmp/my-script.lockfile cd /var/www/html/wp-content/plugins/my-plugin/; php my-script.php我尝试直接在控制台中测试它,不使用 cronjob,并且在创建文件时my-script.lockfile不运行脚本my-script.php。错误说:flock:无法执行 cd:没有这样的文件或目录无法打开输入文件:my-script.php我在这里缺少什么吗?flock()只适用于.sh脚本吗?如果是这样,我如何调整我的 PHP 脚本以使用它flock()?
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

看起来如果你想使用更复杂的命令,你必须在它前面加上前缀-c并包装在".

*/10 * * * * flock -n /tmp/my-script.lockfile -c "cd /var/www/html/wp-content/plugins/my-plugin/; php my-script.php"



查看完整回答
反对 回复 2023-03-11
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信