问题标签 [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.
gearman - 优先考虑齿轮工作服务器?
我有 2 台机器运行相同的工人。一台机器应该是“主要的”,因为它非常强大,而另一台机器应该作为主要机器出现故障或崩溃时的备用服务器。当主机启动并运行时,只要有可用的工作人员,所有作业都应默认为主机。
从我的测试中,我注意到 gearmanD 随机选择一台机器来发送作业。有什么办法可以优先考虑将作业发送到的机器吗?
例子:
主机器运行 8 个同一个 worker 实例 备份机器运行 1 个实例
做:使用主机器,直到没有更多可用的工作人员来填满作业队列,然后继续使用备用机器。
有什么方法可以做到这一点?
谢谢大家!
python - Python守护程序子进程在启动时不起作用
我正在尝试编写一个将在启动时启动的 python 守护程序。该脚本的目标是从我们的 gearman 负载平衡服务器接收作业并完成该作业。我正在使用 pypi ( http://pypi.python.org/pypi/python-daemon/ ) 中的 python-daemon 模块。它正在完成的工作的性质是将 orf(奥林巴斯原始图像格式)的图像转换为 jpeg。为了实现这一点,使用了一个外部程序,在这种情况下是 ufraw。当我在启动时启动守护程序时,问题就出现了,如果我从 shell 启动它会完美运行并完成工作。当它在引导时启动时,它无法启动 subprocess 命令。
我不确定我做错了什么。谢谢你的帮助。
quartz-scheduler - Gearman调度器
有人对调度程序与持久的 Gearman 队列有经验或想法吗?
显然有可用的 crontab,但我想要更多功能。我们正在研究 Java Quartz。
如果您以前以任何身份这样做过,请权衡一下!
php - 有什么方法可以访问 Gearman 管理?
我希望能够查询 gearman 服务器以确定我正在运行的工作人员的实例数(基本上我想确保它RunTaskA
可用并且RunTaskB
如果没有工作人员处理这些任务时可用,我希望能够发送发出警报。
有没有办法做到这一点?
另外:如果您知道查询 gearman 服务器的 PHP 方法,那么疯狂的道具。
编辑:我知道本地可用的 PHP gearman 扩展,但我不是在寻找任务提交扩展,我需要一些允许我查询 gearman 服务器并查看有多少工作人员正在为特定任务服务的东西。
php - 使用 Zend Server Community Edition 在 OS-X Snow Leopard 上为 PHP 编译 Gearman 扩展
我想知道是否有其他人想出了如何解决这个问题。无论是通过 PECL 安装扩展还是手动编译,我都会收到相同的错误:
我不知道如何解决这个问题,我只能把头撞到我的桌子上这么多次。
php - 在我的 php 应用程序中使用 gearman 的正确方法
现在我只想使用 Gearman 进行后台处理。例如,一旦发件人将他们的消息提交到数据库中,我需要向收件人发送电子邮件,告知他们有一条私人消息在等待他们。我假设我可以在我的主服务器上运行工作程序/客户端和服务器,但是将一些任务卸载到不同的 Web 服务器上没有问题。
无论如何,我的问题是如何处理多个“功能”?假设我需要一份处理电子邮件部分的工作和一份处理图像处理的工作。我可以在工作人员中拥有多种功能吗?我遵循了我在网上找到的几个示例,但每个示例仅显示一个正在初始化的函数。我是否必须启动多个“工人”来处理多个功能?
cron - 使用 gearman 与 cron 进行调度?
我注意到很多人在讨论 Gearman,它的调度功能使其能够将工作分配到其他服务器上。但是,我还没有看到与本地 cronjobs 的比较。
cron 和 Gearman 有什么区别?
php - Gearman:在同一台机器上运行客户端和工作人员?
我只是设法在我本地的 Ubuntu 测试环境中安装了 gearman。我想知道我是否可以在开发阶段以任何方式在同一台计算机上同时运行工作者和客户端?
php - 如何在 gearman 中获取特定类型的排队作业数?
我有许多齿轮工客户发送一份工作,比如 job1。
处理这项工作需要 10 秒钟。我想跟踪在任何给定时间有多少“job1”工作正在等待工人处理。我怎样才能做到这一点?
php - 使用 PHP 进行异步处理 - 每个作业一个工人
考虑一个 PHP Web 应用程序,其目的是接受用户请求以启动通用异步作业,然后创建一个工作进程/线程来运行该作业。这些作业不是特别占用 CPU 或内存,但预计会经常阻塞 I/O 调用。每秒不应启动超过一到两个作业,但由于运行时间长,可能同时运行许多作业。
因此,作业并行运行至关重要。此外,每个作业都必须由一个负责杀死挂起的工作人员、根据用户请求中止工作人员等的管理器守护进程进行监控。
实施这样的系统的最佳方法是什么?我可以看到:
- 从经理那里分叉一个工人——这似乎是最低级别的选择,我必须自己实施一个监控系统。Apache 是 Web 服务器,因此这个选项似乎需要通过 FastCGI 启动任何 PHP 工作者。
- 使用某种作业/消息队列。(gearman、beantalkd、RabbitMQ 等) - 最初,这似乎是显而易见的选择。经过一些研究,我对所有选项都有些困惑。例如,Gearman 看起来像是为大型分布式系统设计的,其中有固定的工人池......所以我不知道它是否适合我的需要(每个工作一个工人)。