Symfony2作业队列还是并行处理? [英] Symfony2 Job Queue or Parallel Processing?

查看:120
本文介绍了Symfony2作业队列还是并行处理?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人知道如何通过作业队列或并行处理在后台运行许多进程.

Does anyone know how to run a number of processes in the background either through a job queue or parallel processing.

我有许多维护更新,这些更新需要一些时间才能运行,并且希望在后台执行.

I have a number of maintenance updates that take time to run and want to do this in the background.

推荐答案

我建议使用 Gearman 服务器,它的性能相当不错稳定,它完全在Symfony2之外,您必须启动并运行服务器(不知道您的托管选项是什么),但是它可以完美地分配作业.在最薄的版本中,它只是将所有作业保留在内存中,但是您可以将其配置为使用sqlite数据库作为备份,因此,由于任何原因,服务器重新启动或Gearman守护进程中断,您都可以再次启动它,并且您的作业将得以保留.我知道它已经在非常大的负载下进行了测试(每秒增加1000个作业),并且它已经成为现实.从两年前的经验来看,现在这可能更稳定了,我们通过Gearman将ZF应用程序中一些长期运行的任务卸载到后台处理中.从下面的图片来看,它的工作原理应该是不言而喻的:

I would recomment Gearman server, it prooved quite stable, it's totally outside of Symfony2, and you have to have server up and running (don't know what your hosting options are), but it distribues jobs perfectly. In skiniest version, it just keeps all jobs in-memory, but you can configure it to use sqlite database as backup, so for any reason server reboots, or gearman deamon breaks, you can just start it again, and your jobs will be perserved. I konw it has been tested with very large loads (adding up 1k jobs per second), and it stood it's ground. It's probably more stable nowdays, I'm speaking from experience 2 yrs ago, where we offloaded some long-running tasks in ZF application to background processing via Gearman. It should be quite self-explanitory how it works from image below:

这篇关于Symfony2作业队列还是并行处理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆