jjzjj

beanstalkd

全部标签

php - 如何处理有错误的 Beanstalkd 作业

当我的Beanstalkd作业出现错误时,例如"exception'ErrorException'withmessage'Notice:Undefinedindex:idin/var/www/mysite/app/libraries/lib.phpline248'in/var/www/mysite/app/libraries/lib.php:248,Be​​anstalkd应该如何知道发生错误并将其标记为失败以便再次重试? 最佳答案 为beanstalkd安装一个监视器,这在开发/测试您的应用程序时很有用。一些使用PHP的替代品:h

php - 在后台运行异步作业 (laravel)

我知道Laravel的队列驱动程序,例如redis和beanstalkd,并且我读到您可以增加beanstalkd等的工作人员数量。但是我不确定这些解决方案是否适合我的场景。这就是我需要的;我通过套接字连接收听XML提要,数据一直在快速传输。永远。我在一秒钟内得到了数十个XML文档。我逐行从这个套接字中读取数据,一旦到达XML结束标记,我就将缓冲区发送到另一个进程进行解析。我以前只是用base64对xml进行编码,然后为每个xml运行一个单独的php进程。shell_exec('phpparse.php'.$base64XML);这使我能够非常快速地解析这个永无止境的xml数据。有点像

php - beanstalkd - 保留但未完成的作业会怎样?

我创建了一个从beanstalkd读取的PHP脚本并处理作业。那里没有问题。我要做的最后一件事就是为它编写一个初始化脚本,这样它就可以作为服务运行。然而,这又给我提出了另一个问题。尝试停止服务时,一种显而易见的方法是尝试终止该进程。但是,如果我这样做,如果PHP脚本处理到一半,作业会怎样?所以作业被保留了,但是脚本从来没有成功或失败(分别删除或埋葬),会发生什么?我的猜测是TTR会过期,然后它会被放回就绪队列吗?还有第二个问题,关于如何更好地管理停止PHP服务的任何提示? 最佳答案 当工作进程(beanstalk客户端)打开与bea

php - Queue:push() 在 Laravel 5 中被同步处理

我正在运行Laravel5,我正在尝试让命令排队。我通过运行开始:Queue::push(newMyCommand());为了创建命令,我做了:phpartisanmake:command--queuedMyCommandMyCommand包含一个sleep(20)和file_put_contents('test.txt','Iwork!')我正在运行的命令行:beanstalkd-l127.0.0.1-p11301&phpartisanqueue:listen&并且config/queue.php设置为:'default'=>env('QUEUE_DRIVER','beanstalk

php - Laravel 4.1 邮件队列与 beantalkd 驱动程序 - "Insufficient data for unserializing"

我正在开发我的第一个Laravel应用程序,在尝试使用Mail::queue发送电子邮件来排队发送电子邮件时遇到了一个奇怪的问题。我最初使用的是sync驱动程序并且一切正常,但是现在切换到beanstalkd驱动程序后它停止发送我的电子邮件。我的配置如下:Ubuntu13.10Laravel4.1PHP5.5.3通过apt-get安装Beanstalkd1.8"pda/pheanstalk":"2.1.*"composer.json我注意到每次我运行$phpartisanqueue:work我得到:[ErrorException]Insufficientdataforunseriali

php - 如何检查 Beanstalkd 队列中的作业是否已在 Laravel 中完成

我需要检查添加到队列(Beanstalkd)的作业是否已在Laravel(Laravel5)中完成,如果完成,我需要返回更新的记录(添加到队列更新记录的任务在数据库中)。我已经添加到我的composer.json:"pda/pheanstalk":"3.*"我以这种方式将作业添加到队列中:$jobId=Queue::push('App\Class',$object->toArray(),$this->getQueueName());我使用以下函数检查作业是否完成:publicfunctionfind($queueName,$jobId,$recordId){$phean=Queue::

运行主管队列时,Php-worker 在内存中不断增长

当运行主管队列时,php-worker容器的内存不断增加。(如dockerstats中所见)当工作完成时,这个数字不会下降。当队列持续处理作业一段时间后,内存达到100%并崩溃。[program:updater]process_name=%(program_name)s_%(process_num)02dcommand=php/var/www/laravel/artisanqueue:work--daemon--sleep=3--tries=3--timeout=1800--queue=updaterautostart=trueautorestart=unexpectednumproc

php - 如何使用 php 运行多个 beanstalk worker

截至目前,我只为我的项目运行一个beantalk工作线程,它处理基于cron的作业和实时作业。所以,我想把它分成两个worker。一名工作人员用于跟踪基于cron的作业,另一名工作人员用于跟踪实时异步作业。这样,worker的效率就会得到提高。任何人都可以帮助我,如何使用php运行和deamonize多个beanstalkworker?处理多个beanstalkworker的示例脚本?注意:目前我正在使用pheanstalkphp库。 最佳答案 使用pheanstalk(或其他库),如果您想接受来自多个队列的作业-只需观察它们即可。

php - Laravel 队列失败作业

当作业失败时,我试图从其他表中记录一些数据。它在失败的作业表中效果很好,但每次作业失败时我都无法使Queue::failing(function($connection,$job,$data)工作。我确实尝试将其放入global.php但运气不好。另一个问题是$job返回什么?对象还是工作ID? 最佳答案 您应该使用--tries参数调用queue:work,例如:$phpartisanqueue:worksqs--tries=1没有这个参数,你的工作永远不会失败。但请记住配置您失败的表。1)创建迁移文件:$phpartisanqu

php - Laravel 队列与 supervisord 打开太多 FIFO 文件

我在我的Ubuntu服务器上使用beanstalkd和supervisord运行一个名为“webhooks”的Laravel队列作业。我可以看到作业正常运行,进程ID为4403:webhooksRUNNINGpid4403,uptime4days,19:47:01如您所见,此作业已运行4天。在我的错误日志中,我开始注意到出现以下错误:error:02001018:systemlibrary:fopen:Toomanyopenfiles当我运行lsof|php查看打开了哪些文件,我注意到打开了大量类型为FIFO的文件。这是输出的专家:COMMANDPIDTIDUSERFDTYPEDEVI