问题标签 [gearman]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2121 浏览

python - 如何通过他们的 uniq id 获取 Gearman Jobs 的状态?

我需要通过这些 un​​iq id 获取 Gearman 作业的状态,而不是通过打开的处理程序,正如我看到的每个地方所描述的那样

可能吗?在 python-gearman v. 2 中使用...

感谢您的帮助!

0 投票
2 回答
3595 浏览

php - Gearman 的问题:GEARMAN_COULD_NOT_CONNECT

我已经使用“apt-get install gearman-server”安装了 gearman,然后构建了 PHP PECL。

如果我尝试工人:

$ gearman -w -f wc -- wc -l

它开始等待。正确的。

但是,如果我尝试开始工作(如教程中所述)

$ gearman -f wc < /etc/passwd

它说:

gearman:gearman_client_run_tasks:刷新(GEARMAN_COULD_NOT_CONNECT)127.0.0.1:4730 -> libgearman/connection.cc:480

如果我尝试教程中描述的 PHP str_rev 演示,它会给我同样的错误。

PHP 警告:GearmanClient::do(): flush(GEARMAN_COULD_NOT_CONNECT) 127.0.0.1:4730 -> libgearman/connection.cc:480 in /root/client.php on line 4

这是我使用过的教程: http://gearman.org/index.php?id= getting_started

有人能帮我吗?

编辑:好的。我做了以下操作:“apt-get remove gearman-server”,然后“apt-get install gearman-job-server”。现在错误消失了。但另一个问题:工人和客户现在都冻结了。就在他们等待着什么的时候。有人能帮我吗?

0 投票
5 回答
9545 浏览

php - 具有多台服务器和 php 工作人员的 Gearman

我遇到了在多台服务器上运行的齿轮工工作人员的问题,我似乎无法解决。

当工作服务器脱机而不是取消工作进程时会出现此问题,并导致所有其他工作进程出错和失败。

只有 1 个客户和 2 个工作人员的示例 -

客户:

工人:

工作代码在 2 个独立的服务器上运行。当每台服务器都启动并运行时,两个工作人员都按预期执行作业。当其中一个工作进程被取消时,另一个工作人员按预期执行所有作业。

但是,当带有已取消工作进程的服务器关闭并完全脱机时,对客户端脚本的请求会挂起,并且剩余的工作进程不会执行任何作业。

我从剩余的工作进程中得到以下一组错误:

当我启动另一台服务器,而不是在其上启动工作进程时,剩余的工作进程会立即启动并执行任何剩余的作业。

我似乎很清楚,我需要工作进程中的一些代码来处理任何可能离线的服务器,但是我看不到如何做到这一点。

非常感谢,

安迪

0 投票
1 回答
341 浏览

gearman - Gearman-manager:腻子关闭时速度降低

解决方案: 我找到的解决方案:使用低级nohup程序在关闭连接时忽略腻子发送的信号。所以,而不是./gearman-manager start我做了nohup ./gearman-manager start

注意:仍然,我想知道为什么关闭腻子时它会变慢,或者如果它收到挂断信号,为什么它首先会继续???


关闭腻子会话后,我在执行齿轮工时遇到问题。这就是我所拥有的:

  • 以 cron 作业开始检查 DB 中的某些内容(无限循环)的 gearman 客户端。
  • gearman manager 从gearman-manager start命令开始接收客户端的任务并管理对工作人员的调用
  • gearman worker 从 DB 读取/写入并回显当前作业的状态

当我启动 gearman-manager 时,我可以看到我的工人在接收任务和执行任务时的回声。任务(数据库中的更新)在 cca 中执行。1秒...

A)当我关闭腻子会话时,数据库的变化速度大大降低(cca. 1/10sec)?!你能告诉我这是为什么吗?

B)当我用腻子重新登录时,我没有将 gearman-manager 的输出返回到屏幕上?我希望我会重新登录并看到它继续像关闭腻子之前那样回显状态?也许这可能是因为 gearman-manager 以所有者root启动,而回声来自 .php 以用户gearman运行?或者当我重新登录时,进程在后台?!

0 投票
2 回答
18045 浏览

php - 从 Gearman 作业服务器中删除所有 Gearman 作业

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

0 投票
1 回答
280 浏览

mysql - libdrizzle (mysql) 和 gearman 的错误数据包编号错误

当我尝试将 libdrizzle/mysql 与 gearman 一起使用时,在启动期间出现此错误:

调试 [主] libdrizzle 重播:def -> libgearman-server/plugins/queue/drizzle/queue.cc:562 错误 [主] drizzle_row_buffer:drizzle_state_packet_read:bad packet number:4:110 -> libgearman-server/plugins/queue/毛毛雨/queue.cc:552

尝试使用 gearman 0.24 和 0.23。还有来自 dev-drizzle repo 的 libdrizzle7-release,以及来自源代码的 8.23 和 8.25。

无论数据库表是否为空或有数据,都会出现相同的错误。

0 投票
3 回答
13447 浏览

php - Gearman,php扩展问题:在..中找不到类'GearmanWorker',使用终端但在浏览器上工作

我最近在 ubuntu 10.04 上安装了 gearman,并安装了它的 pecl 扩展。现在,当我在浏览器中运行包含以下内容的 php 文件时:

我明白了object(GearmanWorker)#1 (0) { }

但是当在终端(通过root)运行一个真正的工作文件时,我得到了这个:

工人代码:

请帮忙!

0 投票
1 回答
990 浏览

persistence - Gearman 持久存储解决方案

在考虑到最佳性能的情况下,在 gearman 中引入数据持久性系统的最佳方法是什么?

我问是因为我们正在考虑从 mysql 中的队列系统转移到 gearman。再次使用关系数据库在队列中持久化数据似乎很奇怪,因此我们正在寻找其他可能性。

我知道 libdrizzle、libsqlite 等……但我更多地考虑 nosql,什么是好的、经过验证的和稳定的解决方案?

0 投票
1 回答
1243 浏览

gearman - GearmanManager 安装

我是 ubuntu 新手,正在尝试为 gearman 安装 gearmanmanager。

我已经从这个位置下载了 gearmanager tar.gz:https ://github.com/brianlmoon/Gearma...tarball/master

尝试通过 install.sh 安装它时,出现以下错误。

错误:检测 linux 发行版与 redhat 或 debian 兼容 要使用哪个 PHP 库,pecl/gearman 还是 PEAR::Net_Gearman?install.sh:55:选择:未找到 install.sh:57:语法错误:“完成”意外

请有人指导我以正确的方式摆脱此错误。

0 投票
1 回答
1121 浏览

high-availability - 多个 gearman 服务器可以共享同一个 libdrizzle 队列吗?

多个 gearman服务器可以通过 libdrizzle 共享同一个 gearman 队列吗?

我想知道这是否会消除 Gearman 服务器作为单点故障的情况——如果我有多个 Web 节点,每个节点都与同一个 Gearman 服务器通信,那么如果 Gearman 不可用,该站点就会死掉。但是,如果每个 Web 节点都运行自己的 gearman 服务器(并且该节点生成的作业排队到在同一节点上运行的 gearman 服务器),那么单点故障将转移到数据库。(在我们的架构中,这无论如何都是单点故障。)