jjzjj

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

我对Gearman和PHP的worker有疑问。我想同时运行相同的功能。但是现在Gearman似乎把它变成了一个队列。我正在搜索的输出是:$./daemon.phpStartingdaemon...Receivedjob:H:www-dev1:15Receivedjob:H:www-dev1:16FinishedFinished但是当前代码的输出是:$./daemon.phpStartingdaemon...Receivedjob:H:www-dev1:15FinishedReceivedjob:H:www-dev1:16Finished是否可以使用pcntl_fork()来forkG

php - 从命令行运行 Gearman PHP 的段错误

我将UbuntuNatty与PHP5.3.5和PECLGearman0.8.0一起使用.这是版本信息:PHP5.3.5-1ubuntu7.3withSuhosin-Patch(cli)(built:Oct13201122:20:48)Copyright(c)1997-2009ThePHPGroupZendEnginev2.3.0,Copyright(c)1998-2010ZendTechnologieswiththeionCubePHPLoaderv4.0.10,Copyright(c)2002-2011,byionCubeLtd.,andwithZendGuardLoaderv3.3

php - 我怎样才能从 Gearman 获得计划的工作列表?

我目前正在评估Gearman,以便在我们的后端分包一些昂贵的数据导入工作。到目前为止,这看起来很有希望。但是,缺少一件东西,我似乎找不到任何相关信息。如何从Gearman获取计划作业列表?我知道我可以使用管理协议(protocol)来获取每个函数当前排队的作业数,但我需要有关实际作业的信息。也可以选择使用持久队列(例如MySQL)并查询数据库中的作业,但我觉得绕过Gearman获取此类信息是非常错误的。除此之外,我没有想法。可能我根本不需要这个:)所以这里有一些关于我想做的事情的更多背景,我愿意接受更好的建议。客户端和worker都在PHP中运行。在我们的管理界面中,管理员可以为客户触

php - 您的系统中缺少 gearman

描述正在尝试安装laelaps/symfony-gearman-bundle通过composerrequirelaelaps/symfony-gearman-bundle有一些错误,我很难理解它们的意思。错误Problem1-laelaps/symfony-gearman-bundle1.1.x-devrequiresext-gearman*->therequestedPHPextensiongearmanismissingfromyoursystem.-laelaps/symfony-gearman-bundle1.x-devrequiresext-gearman*->therequ

php - 测试 Gearman 守护进程是否正在运行

我想检查Gearman守护进程是否正在运行。然后才运行任务,这样我的应用程序就不会崩溃。这是我的代码:$daemonRunning=true;while(true){try{Yii::app()->gearman->client->ping(true);if($daemonRunning===false){echo"Daemonbackonline.Startingsignatureprocess...\n";}Yii::app()->gearman->client->runTasks();}catch(GearmanException$e){echo"Daemonappearstob

php GearmanClient超时

我在php中使用gearmanpecl扩展,并希望函数调用超时。两个用例:(1)没有正在运行的工作人员,(2)工作人员完成时间太长如果一切都在运行,调用会非常快,我想避免因超时而产生开销。我目前使用的代码:$client=newGearmanClient();$client->addServer();$client->do('nonexistingfunction'); 最佳答案 只需调用GearmanClient::setTimeout等待毫秒数的方法:$client=newGearmanClient();$client->add

php - 检查特定机器上的 Gearman Worker 状态

我正在运行Gearmanserver连同GearmanManager,以及他们的PHP界面。设置如下所示。Gearman服务器可以在两台机器中的一台或第三台机器上。对于我的实现,我需要能够从一个worker那里得知同一台机器上的另一个worker是忙还是闲。例如我应该能够判断机器1上的Worker2是否不受机器1上的Worker1的影响。可以使用PHPAPI或telnet接口(interface)来完成吗?可能的解决方案在Telnet界面上,'WORKERS'命令会为您提供连接到服务器的所有工作人员及其ip的列表。我相信我可以用它来完成我的任务。我找到了一个PHPscript使用tel

php - Gearman 的工作和任务有什么区别?

我试图理解Gearman,但直到现在我还无法弄清楚任务和工作之间的区别。我正在尝试创建一个客户端,它将定期(每10分钟)解析一个XML页面。哪种方法最好? 最佳答案 手册offersaterrificexplanation:Jobsvs.TasksAtaskisanyrequestorcommunicationbetweentheclientandthejobserver.Ataskisusuallycommunicationaboutajob.Tasksmightbepleaserunthisjoborwhatisthestatu

php - Gearman 工作状态的问题

我有一个Gearman服务器运行一个需要几分钟才能完成的进程。我正在运行一个进度条来显示完成情况,并尝试使用GearmanPHP扩展和jobStatus()函数获取进度条的百分比。由于前两个字段(已知+仍在运行)返回true,因此作业肯定处于事件状态并已找到。然而,第三和第四个字段(完成百分比的分子和分母)没有返回任何内容。有谁知道为什么会这样或者这些数字是如何计算的? 最佳答案 publicboolGearmanJob::sendStatus(int$numerator,int$denominator)Sendsstatusinf

php - 使用 php + gearman + node.js

我正在考虑使用php构建一个站点,但如果使用node.js构建,它的多个方面的性能会好得多。同时,站点的大部分内容需要保留在PHP中。这是因为很多功能已经用PHP开发,重新开发、测试等工作量太大,坦率地说,网站的这些部分在PHP中运行得非常好。我正在考虑重建node.js中的部分,这些部分将受益于在node.js中运行最多,然后让PHP使用Gearman将请求传递给node.js。这样,我通过启动更多工作人员并让gearman处理负载分配来进行横向扩展。我们的站点访问量很大,我担心gearman能否处理此负载。我不想让这个问题富有成效,所以让我们主要关注以下可解决的问题:gearman