2012-12-05 125 views
0

我已经开发出应连续和顺序执行脚本。现在为这个脚本创建一个cron作业,它保持异步执行。执行PHP脚本依次连续

1)我一直在脚本执行一次这个脚本,所以我用@reboot一次执行脚本想法,但如果Apache craches那么这个脚本将无法启动由其自身执行while循环?

2)使用* * * * *的cron它执行这个脚本,但创建多线程和所有的cron服务器上的重叠,最终。

我已经跑出去的想法如何,即使Apache服务器重新启动连续和顺序执行的服务器脚本。

+1

你能可能创建一个“锁定”的文件?意思是,当你的脚本启动时,它会检查这个文件是否存在。如果该文件存在,则该脚本不会继续。否则,它会在启动脚本时创建文件,并在完成后删除文件。只是一个想法。 – Kyle

+0

如果你让脚本通过数据库与自己交谈,那么怎么办? I.E经常更新单元格,所以如果你的下一步进程试图运行,它会意识到你的脚本已经在运行并停止。同样,如果脚本运行并且在该单元的最后一次更新之间存在超过几秒钟,那么它将知道继续 –

+0

因此,我假设你建议我使用诸如侦听数据库的套接字或彗星技术之类的东西。 。我们用于推送通知......对吗?那么它会执行无限期的脚本,即使apache重新启动? –

回答

0

cron是用于定时的基础上(分钟间隔:1分钟)上重复作业。它旨在用于最终退出并需要从头开始重新启动的脚本。听起来你的脚本本质上是试图成为一个守护进程 - 启动一次,然后永久运行。

相反cron来反复启动脚本的新副本,只需启动一次脚本通过初始化脚本,例如/etc/rc.local

+1

但是,如果apache craches?它会从它自己开始吗?我不需要每次Apache重新启动时手动执行.... –

0

有一些想法可以处理检查脚本是否在this question中运行,并且您可以每隔几分钟运行一次cron以确保其运行并在不启动的情况下启动它。