我正在设置一个cron作业,每分钟执行一次脚本page.php 我想了解并发性。 它自己需要15分钟才能完成的脚本,那么cron将如何运行?在cron中处理并发性php
Lets take a time frame of 15 minutes, how many crons will run in that time? 1 or 15?
will cron runs till its completion or it can be interrupted?
Thanks.
我正在设置一个cron作业,每分钟执行一次脚本page.php 我想了解并发性。 它自己需要15分钟才能完成的脚本,那么cron将如何运行?在cron中处理并发性php
Lets take a time frame of 15 minutes, how many crons will run in that time? 1 or 15?
will cron runs till its completion or it can be interrupted?
Thanks.
当你通过cron启动一个php脚本时,它会一直运行,直到它完成或超过执行时间。 无论最后一个脚本是否仍在运行,系统将始终启动脚本的新实例。
如果您知道脚本运行很长时间,您应该设置一个bash脚本来检查脚本是否已经运行,并且只有在不是这种情况时才启动php脚本。
Cron不会为您处理并发 - 您的脚本必须这样做。
原来,这很容易,因为有一个微不足道的PHP操作,那就是原子:unlink()
。
我们倾向于使用这种方式:
unlink()
如果不suceed(结果评估为假),它退出(这可以确保,只有一个实例[R同时UNS)unlink()
touch()
上课全局标志,文件和退出(这可以确保,一个cron运行开始至多一个实例)touch()
上课全局标志文件重新启动的周期这样,cron的运行,这将导致并发性,被排除在外以可记录的方式。
它取决于您的计划任务/ cron设置。您可以配置启动15次PHP脚本,或者在完成上一个作业时启动它。
您的计划任务/ cron可以由它自己中断,通过外部信号或通过您在计划任务/ cron中所做的配置(如果在N分钟内未完成,则停止作业...)
希望对您有所帮助:)
这不是我的问题 – Badddy 2014-11-08 15:59:02
你可能会考虑编辑你的问题来解释它好一点 - 也许我不是唯一一个误解它? – 2014-11-08 20:47:15