72得票2回答
Rabbitmq或Gearman - 如何选择任务队列

在工作中,我们需要构建一个任务服务器来完成像发送电子邮件、生成PDF文件、处理数据等任务。显然,我们希望基于某种通用的队列系统进行构建。我熟悉Gearman,并且它正是试图解决的这个问题:将作业放入队列中,让工作者来提取它们。然而,我看到了很多关于Rabbitmq的提及,不清楚它在这种情况下是...

43得票12回答
优雅停止Gearman工作进程

我有许多Gearman工人在不断地运行, 保存诸如记录用户页面浏览等内容。偶尔, 我会更新Gearman工人使用的PHP代码。为了使工人切换到新代码,我需要杀死并重新启动工人的PHP进程。 有更好的方法吗?大概有时候我会丢失一些数据(虽然不是非常重要的数据)当我杀死其中一个工人进程的时候。 ...

36得票3回答
定期重启子进程的Supervisord设置方法

我正在使用Supervisor (3.0a12)在Ubuntu 12.04上管理php gearman工作者。有时候工作者会陷入一种奇怪的状态,耗费大量CPU和RAM。当我解决这个问题时,我觉得让Supervisor定期自动杀死和刷新工作者会很不错。我查看了配置文档,但似乎没有找到任何允许这样...

28得票1回答
自动启动多个Upstart实例

我们使用PHP gearman workers来并行运行各种任务。一切都很顺利,我有一个简单的shell脚本以启动它们。作为一个程序员(因此很懒),我想知道是否可以通过upstart脚本启动它们。 我弄清楚了如何使用实例标记,因此我可以使用实例号启动它们:description "Async...

26得票9回答
有没有一种方法可以访问Gearman管理界面?

我希望能够查询Gearman服务器,以确定我正在运行多少个worker示例(基本上,我想确保如果没有处理这些任务的worker,则RunTaskA和RunTaskB可用,我希望能够发送警报)。 有没有办法做到这一点? 此外:如果您知道通过PHP查询Gearman服务器的方法,那就更好了。 ...

23得票1回答
当客户端发送大负载时,Gearman变慢了

我在使用Gearman时遇到了问题,当我通过Gearman PHP扩展发送大型负载时,向工作进程传输任务速度非常慢。实际上,我们认为负载并不是很大(只有30MB)。目前所有内容(PHP、Gearman、node)都在本地运行,所以网络访问不是瓶颈。 这是PHP客户端的代码:ini_set('...

15得票7回答
如何在Gearman中获取特定类型的排队作业数量?

我有多个gearman客户端发送作业,比如说job1。$client = new GearmanClient(); $client->addServer(); $client->doBackground('job1', 'workload'); 处理该作业大约需要10秒钟。我想追踪...

14得票2回答
从Gearman作业服务器中删除所有Gearman作业

有没有一种方法可以从Gearman作业服务器中删除所有Gearman作业?我的PHP应用程序在后台运行Gearman作业。对于我的单元测试,我需要确保a)没有等待执行它的工作人员的作业,b)没有工作人员在工作。后者并不那么重要,因为可以轻松地杀死工作人员,但前者 - 我不知道如何实现。 有没...

13得票2回答
Gearman gearadmin命令行工具的状态输出含义

我无法找到任何关于gearadmin命令行工具使用"--status"选项含义的文档。三个数字代表worker函数名称后面的意思是什么? 例如,当我运行这个命令:gearadmin --status 我得到以下输出:worker-function-name 114 0 0 . 我不知...

13得票3回答
有任何Gearman教程吗?

我正在寻找一份全面的Gearman教程(最好带有PHP API)。我想要理解整个流程。我已经启动了守护进程,创建了客户端和工作者,但是如何使用Gearman处理它们(例如添加/删除工作者等)?