所以我试图让Pheanstalk队列在Laravel 4中工作,这是内置的(我不得不安装beanstalkd库)。
现在完成了…我想给我的工人提供工作。每次我这样做,我得到这个错误
[2013-04-25 08:55:03] log.ERROR: exception 'SymfonyComponentDebugExceptionFatalErrorException' with message 'Error: Maximum execution time of 30 seconds exceeded in C:wampwwwadamL4vendorpdapheanstalkclassesPheanstalkSocketStreamFunctions.php line 55' in C:wampwwwadamL4vendorpdapheanstalkclassesPheanstalkSocketStreamFunctions.php:55
Stack trace:
#0 C:wampwwwadamL4bootstrapcompiled.php(5006): SymfonyComponentDebugErrorHandler->handleFatal()
#1 [internal function]: IlluminateExceptionExceptionServiceProvider->IlluminateException{closure}()
#2 {main} [] []
我也得到这个错误在我的日志:
exception 'ErrorException' with message 'Catchable Fatal Error: Argument 1 passed to IlluminateQueueJobsJob::resolveAndFire() must be of the type array, null given
当我运行'php artisan queue:listen'时,它似乎被循环了。
我已经下载了beanstald的控制台,并将其配置为侦听服务器localhost:11300。
这给了我一个错误:unhandled response.
我已经修改了我的httpd.conf并添加了Listen 11300,然后重新启动。
你知道我哪里错了吗?我没有看到太多Beanstalkd的文档,Laravel的文档也没有帮助。
谢谢你的建议!
对不起,beanstalkd
在Windows上不可用
为了给读者合理地回答一个老问题,我提出以下建议:
作为Pheanstalk的替代方案,你也许可以使用Redis。有一个Chocolatey安装:
https://chocolatey.org/packages/redis - 64您可以作为Windows服务安装,并在安装后使用命令行工具:
C:> redis-cli
C:> 127.0.0.1:6379> <your command here>
你也许可以使用像永远这样的东西来保持你的队列命令在后台运行(如果有必要,在失败时自动重启):
https://www.npmjs.com/package/forever使用像
这样的命令 forever -c php artisan queue:listen -a -l C:somelogdirectorysomelogfile.txt