通过Cron实现PHP并发

通过Cron实现PHP并发,php,multithreading,concurrency,cron,Php,Multithreading,Concurrency,Cron,我有一些脚本需要作为单独的进程并发运行。我的计划是有一个cron作业,以设定的间隔执行这些脚本的多个实例。这是个好主意吗?这种方法的优点/缺点是什么?我还有其他的选择需要考虑吗?< 底线:我试图模仿多线程。任何竞争条件都将通过代码处理(例如,在DB中设置状态等)。脚本应该执行处理密集型任务(例如创建缩略图等)。您可以使用分叉。启动脚本将加载所有默认配置和初始化,然后分叉子进程进行处理。然后,它可以监视这些进程,看看它们是否仍在运行。 PHP没有吗?虽然这不是真正的多线程,但它是协作例程的基本方式

我有一些脚本需要作为单独的进程并发运行。我的计划是有一个cron作业,以设定的间隔执行这些脚本的多个实例。这是个好主意吗?这种方法的优点/缺点是什么?我还有其他的选择需要考虑吗?<
底线:我试图模仿多线程。任何竞争条件都将通过代码处理(例如,在DB中设置状态等)。脚本应该执行处理密集型任务(例如创建缩略图等)。

您可以使用分叉。启动脚本将加载所有默认配置和初始化,然后分叉子进程进行处理。然后,它可以监视这些进程,看看它们是否仍在运行。
PHP没有吗?虽然这不是真正的多线程,但它是协作例程的基本方式。

如果您需要它作为cronjob,请继续。如果您需要多个进程,则很可能希望使用创建同一脚本的多个实例。

根据您对这些作业的反应速度以及您希望执行处理器密集型任务的情况,还可以使用排队系统分散处理。如果您有多个内核/处理器,请检查或使用每台机器的多个工作进程。

使用cron的一个缺点是,它将按照您设置的间隔执行脚本副本,而不管已经运行了多少个脚本进程。这意味着脚本需要一种相互通信的方式,以使最多N个脚本同时运行(多余的脚本可以立即退出)

cron的另一个替代方案是执行可配置数量的脚本,并监视每个脚本,以便重新启动任何出口