下午,
我们在生产环境中使用 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/