1

我已经为 Laravel 安装了 Pheanstalk 包(https://github.com/mikelbring/Pheanstalk)我现在正在按照基本示例代码尝试将作业传递到队列并再次检索它。

这是我的代码:

Route::get('queue', function()
{

Pheanstalk::useTube('testtube')->put("job payload goes here\n");

$pheanstalk = Pheanstalk::connection();

$job = $pheanstalk
  ->watch('testtube')
  ->ignore('default')
  ->reserve();

echo $job->getData();

$pheanstalk->delete($job);
});

然而,当我运行它时,我得到一个“未处理的响应”错误,就像没有返回任何内容一样。

Unhandled Exception

Message:

Unhandled response: 
Location:

C:\wamp\www\adam\phire\bundles\pheanstalk\pheanstalk\classes\Pheanstalk\Command\PutCommand.php on line 108
Stack Trace:

 #0 C:\wamp\www\adam\phire\bundles\pheanstalk\pheanstalk\classes\Pheanstalk\Connection.php(121): Pheanstalk_Command_PutCommand->parseResponse('', NULL)
#1 C:\wamp\www\adam\phire\bundles\pheanstalk\pheanstalk\classes\Pheanstalk.php(511): Pheanstalk_Connection->dispatchCommand(Object(Pheanstalk_Command_PutCommand))
#2 C:\wamp\www\adam\phire\bundles\pheanstalk\pheanstalk\classes\Pheanstalk.php(273): Pheanstalk\Pheanstalk->_dispatch(Object(Pheanstalk_Command_PutCommand))
#3 C:\wamp\www\adam\phire\application\routes.php(45): Pheanstalk\Pheanstalk->put('job payload goe...')
#4 [internal function]: Laravel\Bundle::{closure}()
#5 C:\wamp\www\adam\phire\laravel\routing\route.php(163): call_user_func_array(Object(Closure), Array)
#6 C:\wamp\www\adam\phire\laravel\routing\route.php(124): Laravel\Routing\Route->response()
#7 C:\wamp\www\adam\phire\laravel\laravel.php(167): Laravel\Routing\Route->call()
#8 C:\wamp\www\adam\phire\public\index.php(34): require('C:\wamp\www\ada...')
#9 {main}

有没有人熟悉 Pheanstalk 并且可以提供一些帮助?

谢谢亚当。

4

1 回答 1

0

是引发异常的地方。似乎您的 beanstalkd 正在返回 pheanstalk 不理解的内容。您确定要连接到工作中的 beanstalkd 实现吗?

Pheanstalk Laravel 捆绑包似乎不是问题。您是否尝试过使用相同的连接详细信息使用常规 Pheanstalk 进行测试?

于 2013-04-26T10:22:45.247 回答