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

查看:20
本文介绍了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 守护程序中断,您都可以重新启动它,您的作业将被保留.我知道它已经在非常大的负载下进行了测试(每秒增加 1k 个作业),并且它站稳了脚跟.现在可能更稳定了,我是根据 2 年前的经验说的,当时我们通过 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天全站免登陆