有没有人知道如何通过作业队列或并行处理在后台运行多个进程。
我有许多维护更新需要时间才能运行,并希望在后台执行此操作。
答案 0 :(得分:3)
我会推荐Gearman服务器,它很稳定,它完全在Symfony2之外,你必须让服务器启动并运行(不知道你的托管选项是什么),但它完美地分配了工作。在最简洁的版本中,它只是将所有作业保留在内存中,但您可以将其配置为使用sqlite数据库作为备份,因此无论出于何种原因服务器重新启动,或者齿轮变速器deamon中断,您都可以再次启动它,并且您的作业将得到保持。我知道它已经经过了非常大的负载测试(每秒增加1k个工作量),并且它坚持不懈。它现在可能更稳定了,我说的是2年前的经验,我们在ZF应用程序中将一些长期运行的任务从Gearman卸载到后台处理。它应该是非常自我解释的如何从下面的图像工作:
答案 1 :(得分:2)
结帐RabbitMq。根据knpbundles.com
,它是最受欢迎的选项答案 2 :(得分:1)
查看http://github.com/mmoreram/rsqueue-bundle
使用Redis作为队列核心并将被保留。
答案 3 :(得分:0)
看看enqueue图书馆。有很多transports(AMQP,STOMP,AmazonSQS,Redis,Filesystem,Doctrine DBAL等)可供选择。易于使用,功能丰富。这对于简单的作业队列来说已经足够了,不过如果你需要更复杂的一些enqueue/job-queue。它可以运行独占作业(在给定时间只运行一个作业)或具有子作业的作业,或者在完成后可以执行某些操作的作业。
当然,它有a bundle