jjzjj

如何使用Gearman执行固定任务

我正在建立一个付款系统php这取决于RESTAPI。我的业务逻辑:如果有人通过我的系统提交请求,则可以说“从A点转移货币到B点”,该交易保存在我的数据库中,并具有状态:“已提交”,然后提交给(移动网络运营商)APIURL,该APIURL处理并进行处理和将状态返回到我的系统,将我的数据库事务状态更新为新状态“例如:等待确认”,并将传入状态通知用户。问题是:我的应用程序应以10秒的间隔继续要求检查新状态并向用户显示新状态,直到“完整或拒绝”的最后状态,因为状态可以范围为5,例如:“等待,拒绝,批准,,完全的...'。我设法使用Ajax进行了此操作,并在JavaScript中设置时间间隔。但是,它停

php - Gearman 的 Web UI 或 PHP Job Queue 的替代品

我们开发了一套PHPSASS应用程序,并使用Gearman在后台同步和异步处理任务。我们喜欢Gearman提供的一切,但我们开始发现队列管理变得乏味。这里有没有人使用过Gearman的WebUI,可以让您查看所有作业服务器和在其上排队的作业?或者有任何替代Gearman的建议,可以在LAMP堆栈上轻松运行,并具有良好的PHP库支持和WebUIofcause? 最佳答案 我刚刚发布了一个新的GearmanUI。它是GearmanMonitor的更新版本,基于AngularJS和Silex:GearmanUI.希望您觉得它有用。

php - gearman 给我 GEARMAN_COULD_NOT_CONNECT,它肯定在运行

我的开发服务器是DebianSqueeze,我正在运行Gearman1.1.5,它是我从源代码编译的以及phppecl扩展v1.1.1如果我运行reverse_client.php脚本,我会收到GEARMAN_COULD_NOT_CONNECT错误。PHP警告:GearmanClient::do():send_packet(GEARMAN_COULD_NOT_CONNECT)无法发送服务器选项数据包->libgearman/connection.cc:430in/home/bealers/build/gearman-1.1.1/examples/reverse_client.php第2

php - Gearman 与 ZeroMQ

有人对这些引擎的分布式架构有一些反馈吗?哪个是最好的,或者在哪些情况下哪个是最好的选择?问候! 最佳答案 Gearman和ZeroMQ都有不同的用途。ZeroMQ更像是套接字编程,或者更确切地说:Thesocketlibrarythatactsasaconcurrencyframework.另一方面,Gearman是一个分布式作业/worker解决方案。虽然很简单,但它确实很好地达到了目的。Gearman有实际的工作服务器和库来创建客户端。使用ZeroMQ,您还必须自己构建作业服务器。因此,根据您的需要,使用的答案会有所不同。如果您

redis - 如何将redis与gearman一起使用以实现持久化

如何将Gearman与Redis一起用于持久队列?我正在尝试为centos7运行它。我让Gearman工作。运行中gearmand-h我可以看到支持libsqlite3,邮政系统,libtokyocabinet和MySQL.我已经根据各种论坛使用yum安装了hiredis,尽管我不知道如何通过终端运行它。我为gearman下载了tar文件,并尝试在gearman文件夹中运行此命令但无济于事。./configure--enable-FEATUREsql 最佳答案 要使用hiredis持久性队列构建gearmand,您必须在CentOS

mongodb - pecl 无法在 php CLI 模式下工作(在 Gearman 中涉及 mongoDB)

出于测试目的,我在本地主机上运行了gearman。所以我从php命令行运行gearmanworker.php文件。当我在正常的apache模式下测试它时,mongoDB工作得很好,但是当它从gearmanworker文件运行时,我收到错误“fatalerror:找不到类‘Mongo’”。现在Mongo类来自pecl和php.ini中的mongo.so扩展。是的,试图找出为什么从CLI运行的php文件不同。它是否使用单独的php.ini文件? 最佳答案 您可以通过执行php--ini检查CLI版本正在加载哪些.ini文件。如果您的PH

python - Gearman + SQLAlchemy - 不断丢失 MySQL 线程

我有一个python脚本,可以设置几个gearmanworker。他们在我拥有的SQLAlchemy模型上调用了一些方法,这些方法也被Pylons应用程序使用。在一两个小时内一切正常,然后MySQL线程丢失并且所有查询失败。当我为pool_recycle定义如此低的值时,我无法弄清楚为什么线程会丢失(我在3个不同的服务器上得到相同的结果)。另外,为什么不创建新连接?有什么要调查的想法吗?importgearmanimportjsonimportConfigParserimportsysfromsqlalchemyimportcreate_engineclassJSONDataEncod

php - PHP : Gearman vs. pthreads 中的异步数据库/服务调用

在我们的LAMP站点上,我们遇到了一些服务必须多次调用数据库以提取数据的问题。通常这是在PHP中完成的方式(至少我的经验)是串行的;这显然是低效的。我们可以通过使用缓存和聚合一些查询来减轻一些低效率;但在某些情况下,我们仍然需要进行多次数据库调用。理想情况下,我会同时向数据库或Web服务异步发送尽可能多的请求,但PHP似乎不支持开箱即用的模式。这些是我所知道的解决方法。我们目前使用Gearman来处理异步任务。我可以将我们的一些服务重写为Gearman任务,并使用它来对数据库和服务进行异步调用。然而,我们有过Gearman占用大量进程和内存的糟糕经历;在某些情况下强制使用重新启动我们的

php - INNODB Lock 有什么问题?

我在处理大量更新、插入和删除请求的系统上工作。这就是为什么我选择INNODB作为我的存储引擎的原因是行锁。我们每10分钟更新60.000条记录。我们正在使用Gearman并行化我们在不同服务器上的工作。代码使用PHP,我们使用ZendFramework。那么让我们从问题的描述开始。我们正在记录错误,几乎每5到20分钟就会发生一个错误。SQLSTATE[HY000]:Generalerror:1205Lockwaittimeoutexceeded;tryrestartingtransaction简单地扩展“锁定等待超时”对我们没有帮助,因为我们试图尽可能快地更新。为了获得更多信息,我完成

php - MySQL 插入语句队列

我们正在构建一个ajax应用程序,其中将用户输入提交给php脚本进行处理。我们目前正在将每个请求写入日志文件以供跟踪。我想将此跟踪移动到数据库表中,但我不想在请求后运行插入语句。我想做的是设置一个需要在MySQL数据库上处理的事务(插入和更新)的“队列”。然后我会设置一个cron作业或进程来检查和处理队列中的事务。有没有我们可以构建的东西,或者我们是否必须写入纯文本日志文件并处理它们? 最佳答案 你想要Gearman-它将请求排队并在数据库准备好时插入它们,因此您不会使数据库服务器重载。Gearmanprovidesageneric