获取排队作业响应Laravel 5.2

时间:2016-06-26 11:12:43

标签: laravel-5

目前我有以下设置,一个在我的控制器中调用一个功能的路由,该路由又将一个工作排队。

//我的路线

Route::get('/testJob', 'Controller@testJob');

//我的控制器

public function testJob()
{
    $job = (new testJob())->delay(5);
    $this->dispatch($job);
}

//我的工作

public function handle()
{   
    require 'testAPICall.php';
    // echo $response;
    return $response;
}

// testAPICall.php

$response = 'this is the response';

//后面的队列

Queue::after(function (JobProcessed $event) {
    echo var_dump($event->data);
});

我希望能够做的是访问Queue ::中作业返回的响应,或者将一个回调传递到队列中以便在作业之后执行,再次访问来自这份工作。

Laravel Queues是否可以实现这一点,如果是这样,我将如何解决这个问题呢?

干杯,杰克。

2 个答案:

答案 0 :(得分:1)

Queue :: after()是一个全局回调,它将在每个作业之后运行。所以这可能不是你想要的。 在您的情况下,我将依赖事件/听众在完成工作后触发。

public function handle(Mailer $mailer)
{
   //Your code 
   event(new JobDone($data));
}

如果您需要更多实施细节,请与我们联系。

答案 1 :(得分:0)

我做了类似你的事情,在laravel 5“app”文件夹中记录消息“queue.txt”

这段代码我是从youtube视频获得的,而不是我的代码,但我已经成功测试了

首先你需要在“Routes.php”中编码,如下所示

information_schema

然后你可以使用“php -S localhost:8888 -t public”运行你的项目文件夹

同时你必须在windows或linux环境中打开另一个终端窗口并指向同一文件夹并发出命令“php artisan queue:listen”

我认为这会对你有所帮助!