目前我有以下设置,一个在我的控制器中调用一个功能的路由,该路由又将一个工作排队。
//我的路线
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是否可以实现这一点,如果是这样,我将如何解决这个问题呢?
干杯,杰克。
答案 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”
我认为这会对你有所帮助!