微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查php作业实例

在我的系统中,我已经安排了一个PHP作业来运行每分钟。

现在我想,如果这个工作的一个实例正在运行,并且需要超过1分钟,每分钟后启动的新实例检查是否有任何以前的实例正在工作,并且有任何以前的实例正在运行,新的实例会自行终止。我正在尝试system()命令,但无法弄清楚。

任何提示

Powershell将variables传递给作业

c – Ncurses放置在后台时会停止进程

如果我处理了工作的一个窗口,如何处理工作

是否可以通过名称来pipe理JobObjects,而不必保持打开的HANDLE?

在Windows上安排作业

Shell脚本不能从cron作业执行

如何安排工作和在Linux中传递参数并行运行

为什么SIGHUP信号在成为孤立进程组时没有收到

在Windows上的cron作业的最佳途径

命令行应用程序在作业中运行进程

对锁定文件使用独占文件锁定。 只要进程结束执行,锁就会自动释放。

<?PHP $fp = fopen("/var/tmp/your.lock","w"); if (!flock($fp,LOCK_EX|LOCK_NB)) { // try to get exclusive lock,non-blocking die("Another instance is running"); } [... continue with the script ...]

请参阅: http : //www.PHP.net/manual/en/function.flock.PHP

有几个解决方案。 所有常见的事情是在作业开始时设置一个标志,当作业完成时清除标志。 在工作开始时检查该标志的存在。

在伪代码中:

if ( flag is set ) exit set flag do some stuff clear flag

例如,您可以创建一个文件作为您的标志。 或者您可以在memcache中创建一个密钥并将其用作您的标志。 或者一个数据库,或其他东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐