php - Gearman worker - 限制 worker 将处理的工作量

标签 php gearman

下午,

我们在生产环境中使用 Gearman,我们有几个正在运行的工作人员,每天处理数百个或数千个工作(忙碌的工作人员)。不过,我们遇到了一个轻微的内存问题,泄漏非常小,但几天后它就会累积起来。

在命令行上,当我运行时

gearman --help

上面写着

...
Worker options:
-c <count> - Number of jobs for worker to run before exiting

这似乎是理想的选择,我们可以将其设置为 50~k 并且知道 worker 将会死亡并且问题得到解决。然而,在查看 gearman 的 pecl 库时,我看不到可以在哪里添加/配置它。

有一个需要 int 的 AddOption 方法 - 但我在文档或源代码中找不到任何可以设置它的引用。

我不想配置自己的管理系统...

有什么想法吗?

最佳答案

GearmanManager允许您指定每个工作人员在重新启动之前应生存的时间(以秒为单位,不是执行的任务)。

否则,您可以只跟踪工作线程中执行的任务数量,并在 while 循环中使用 bash 脚本启动它。当你达到 50k 时,只需 exit() 并让 bash 脚本重新启动你的工作线程。

关于php - Gearman worker - 限制 worker 将处理的工作量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11424722/

相关文章:

php - 使用 Yii2 查询生成器创建 mysql 查询,strpos : array given

python - Gearman + SQLAlchemy - 不断丢失 MySQL 线程

php - 分布式视频编码——Gearman vs Beanstalkd

php - 带有 PHP 的 Gearman - worker 中的线程

php - 使用 AJAX 从 MySQL 数据库检索数值数据

php - 如何使用 PHP 从 mySQL 中的表中选择某些字段

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 如何在一个项目中的不同文件夹中添加多个代码接收套件?

php - 在 gearman 工作人员之间共享 curl 处理程序

php - pecl - gearman - 无法加载动态库?