php - 如何在 Laravel 5.1 中完成后捕获作业队列详细信息?

标签 php laravel laravel-5 queue

在 Laravel 5.1 中,我希望在作业完成时收到通知,以及作业的详细信息(特别是 user_idcustomer_id)。我在 AppServiceProvider 中使用 Queue::after 方法作为 Laravel suggests .

如果像这样转储 $data 参数:

Queue::after(function ($connection, $job, $data) {
    var_dump($data);
    exit;
});

我得到以下信息:

array(2) { ["job"]=> string(39) "Illuminate\Queue\CallQueuedHandler@call" ["data"]=> array(1) { ["command"]=> string(263) "O:23:"App\Jobs\ExportContacts":4:{s:7:"*data";a:5:{s:7:"user_id";s:1:"2";s:10:"customer_id";s:1:"1";s:6:"filter";N;s:5:"dates";a:2:{i:0;i:1445352975;i:1;i:1448034975;}s:4:"file";s:31:"/tend_10-20-2015-11-20-2015.csv";}s:5:"queue";N;s:5:"delay";N;s:6:"*job";N;}" } }

data 数组包含我要查找的 user_idcustomer_id。这很棒。但我该如何解析此响应以提取该信息。

我唯一的想法是使用正则表达式。但我想我会检查一下是否有更好的方法?

最佳答案

对于 Laravel 5.2:

Queue::after(function (JobProcessed $event) {
    $command = unserialize($event->data['data']['command']);
});

关于php - 如何在 Laravel 5.1 中完成后捕获作业队列详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33808689/

相关文章:

php - 通过 PHP 将 MP3 显示为 OGG

php - 如何将自托管的 wordpress 和 live 站点的已安装插件升级到最新可用版本而不会遇到任何问题?

javascript - 将我的选择 ID 传递给路由 Controller 并显示给另一个 Blade 文件

php - CodeIgniter不使用image_lib添加水印

php - 使用 PHP 更新数据库表

php - Laravel 存储文件编码

php - Laravel Eloquent 显示查询日志

php - 如何在 Blade 中循环 Ajax 响应

php - Laravel 5 使用推送器在数据库添加时触发通知

mysql - Laravel 和阿拉伯弹头