标签: gearman

编译的PHP扩展无效

我试图在Ubuntu 10.04上安装gearman PHP扩展,PHP固定为5.2,但PHP告诉我它不是一个有效的Zend扩展.

从源代码编译时(或通过pecl安装)没有错误,但在安装完成后,PHP会这样说:

/usr/lib/php5/20060613+lfs/gearman.so doesn't appear to be a valid Zend extension
Run Code Online (Sandbox Code Playgroud)

模块的体系结构与PHP的结构相匹配(我在32位和64位系统上都尝试过它).据我所知,我已经安装了所有依赖项(我假设如果我错过了任何错误,我会得到错误 - 我起初做了).

我正在使用gearman 0.8.0,因为它是在PHP 5.2上运行的最高版本.我使用的是PHP 5.2,因为我最后一次检查时,我们的drupal 6在5.3中表现不佳(据说这已经在核心中修复,但不一定用于模块).

我怀疑这可能与固定PHP有关,因为我找不到有关此行为的任何文档.

php ubuntu gearman php-extension

8
推荐指数
1
解决办法
3108
查看次数

分布式视频编码 - Gearman vs Beanstalkd

我正在寻找构建几十台机器的分布式视频编码集群.我之前从未使用过消息队列,但是我开始玩的那个是Gearman和Beanstalkd.

Beanstalk似乎比Gearman更简单,更容易使用,但它的功能并不像.

我不明白的一件事是......你如何在所有服务器上产生新员工?我打算用php.是否像在CLI中使用"&"运行worker.php一样简单,只是让它坐在那里等待工作?

我注意到在完成一个工作后,gearman实际上并没有杀死进程,但是Beanstalk会这样做,所以我必须在每个服务器上的每个作业之后重启脚本.

目前我更倾向于使用Beanstalk,我计划的一般流程是:

在每台服务器上运行一个微小的cron,检查是否有预先定义的工作量正在运行.如果它不应该是,产生新的工作进程.每个过程大约需要2-30分钟.

也许我的逻辑存在缺陷?让我知道这样做的"更好"或"适当"的方式是什么?

php video-encoding beanstalkd gearman

7
推荐指数
1
解决办法
4086
查看次数

列出Gearman工作句柄

如何列出Gearman作业服务器上的所有作业句柄?我正在尝试提出一种监控方法,我可以在其中列出所有正在运行的线程,并轮询其状态.

列出具有'status'和'workers'的运行作业(如http://gearman.org/index.php?id=protocol中所述)列出了函数和worker,但没有作业句柄.需要工作句柄才能进行GET_STATUS等.

我正在尝试将作业提交与监视分离,因此没有在JOB_CREATED数据包中返回的作业句柄.

php gearman

7
推荐指数
1
解决办法
2631
查看次数

具有延迟的简单可扩展工作/消息队列

我需要设置一个作业/消息队列,其中包含为任务设置延迟的选项,以便免费工作者不会立即获取它,但是在一段时间后(可能因任务而异).我查看了几个linux队列解决方案(rabbitmq,gearman,memcacheq),但它们似乎都没有提供开箱即用的功能.

有关如何实现这一目标的任何想法?

谢谢!

message-queue beanstalkd gearman rabbitmq

6
推荐指数
1
解决办法
2814
查看次数

在Gearman安排一份特定日期和时间的工作

从我所看到的,Gearman不支持预定的工作或延迟工作.我想也许预定的作业可能先排队at,然后在at时间段到期后添加到Gearman队列.

at任务是持久的,因为它们作为文件写入服务器的假脱机目录中的目录.因此,唯一的瓶颈可能是将任务添加到Gearman队列的简单脚本,因为at无法跨服务器分布.将它传递给Gearman来处理实际工作意味着我可以获得适当的工作记录等.

这是解决这个问题的最佳方法吗?您有任何其他想法吗?

我选择Gearman而不是其他队列解决方案的原因是它有一个PHP扩展.

我写的代码用于维护需要发送的电子邮件队列.因此,我可以指定我想在周五的9.50发送电子邮件到example@example.org,例如.

php unix linux gearman at-job

6
推荐指数
1
解决办法
6554
查看次数

当百胜有过时版本时如何更新提升

我正在尝试安装最新版本的Gearman.但是,它一直给我错误:

检查Boost Headers版本> = 1.37 ...没有

当我检查我的Boost版本(yum list installed | grep boost)时,所有版本都是1.33.最新的Boost版本是1.46,但似乎CentOS在他们的存储库中没有这个版本.

有没有办法绕过百胜更新Boost到最新版本?

boost centos yum gearman

6
推荐指数
1
解决办法
2万
查看次数

Gearman:将数据从后台工作人员发送到客户端

是否可以从后台运行的齿轮工人发送数据(使用PHP)?

我知道我可以将状态(分子/分母)传递给客户端,但我需要"返回"数据.

背景是我需要在不同的服务器上调用worker,如果他们没有响应,主脚本应该继续.所以我想我必须在后台运行工人.但我需要他们的一些数据.

更新: 似乎不可能.我想我要么将数据存储在共享数据库中,要么将其从远程服务器写入本地服务器,或者从远程服务器读取数据,或者做如下所示:

shell_exec('gearman -f getdata-192-168-200-1 > /my/path/ 2>&1 & echo $!');
Run Code Online (Sandbox Code Playgroud)

php gearman

6
推荐指数
1
解决办法
1729
查看次数

Haskell框架,用于并行化非线程安全的C++库

我有一个闭源非线程安全的C++共享库,它提供了一个函数f :: ByteString - > ByteString.此功能的运行时间可能介于一秒到几个小时之间.

我正在寻找一种方法将计算分配到多个核心/服务器(SIMD).

简而言之,我正在寻找一个提供功能的框架

    g :: Strategy b -> (a -> b) -> a -> b
Run Code Online (Sandbox Code Playgroud)

提升一个只能被顺序调用到一个函数的函数,该函数的行为类似于Haskell中的任何其他纯函数.

例如,我希望能够写:

    parMap rwhnf f args -- will not work
Run Code Online (Sandbox Code Playgroud)

由于f通过FFI在非线程安全的lib中调用C函数,因此不起作用.因此,我可以用函数g替换函数f,函数g保存作业队列并将任务分派给N个单独的进程.这些进程可以在本地运行或分发:

    parMap rwhnf g args -- should works
Run Code Online (Sandbox Code Playgroud)

我已经研究过的潜在框架是

  1. MPI:客户端(Haskell)< - MPI - >代理(C++)< - MPI - >工作者(C++)< - > Lib(C++)

  2. ZeroMQ:客户端(Haskell)< - ZeroMQ - > Broker(C++)< - ZeroMQ - > Worker(C++)< - > Lib(C++)

  3. Cloud Haskell:客户端(Haskell)< - CloudHaskell - > Worker(Haskell)< - FFI - > Lib(C++) …

concurrency haskell distributed-computing gearman zeromq

6
推荐指数
1
解决办法
490
查看次数

Gearman工作状态问题

我有一个Gearman服务器运行一个过程,需要几分钟才能完成.我正在运行一个进度条来显示完成,并且我正在尝试使用Gearman PHP扩展和jobStatus()函数来获取该栏的百分比.

这个工作肯定是活跃的,因为前两个字段(已知+仍在运行)返回true.但是,第三和第四个字段(完成百分比的分子和分母)没有返回.有谁知道为什么会这样或这些数字是如何计算的?

php gearman progress-bar

5
推荐指数
1
解决办法
3016
查看次数

./configure not seeing/finds boost header files

试图在Fedora 64系统上使用bzr从Launchpad的gearmand-0.33.tar.gz构建gearman.

通过tiself执行./configure,以及使用"-with-boost =/usr/include"参数生成警告错误,因为配置进程似乎无法找到/找到boost头文件.

我们也通过"yum install boost*"删除/重新安装了boost头文件

任何指针都会被尝试!

谢谢

./configure
.
.
.
checking if more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking for Boost headers version >= 1.39.0... yes
checking for Boost's header version... 1_41
checking for the toolset name used by Boost for g++... gcc44 -gcc
checking boost/program_options.hpp usability... no
checking boost/program_options.hpp presence... yes
configure: WARNING: boost/program_options.hpp: present but cannot be compiled
configure: WARNING: boost/program_options.hpp:     check for missing prerequisite headers?
configure: WARNING: boost/program_options.hpp: …
Run Code Online (Sandbox Code Playgroud)

compiler-construction boost fedora gearman

5
推荐指数
2
解决办法
1万
查看次数