boo*_*rak 8 php queue laravel laravel-5.2
我应该如何解码和"美化"Laravel失败的工作有效载荷?
在我的数据库表中failed_jobs我有列有效负载,如下所示:
{"job":"Illuminate\\Queue\\CallQueuedHandler@call","data":{"commandName":"App\\Jobs\\createHostingOncPanel","command":"O:30:\"App\\Jobs\\createHostingOncPanel\":7:{s:10:\"\u0000*\u0000orderNo\";i:11;s:18:\"\u0000*\u0000hostingPackages\";s:45:\"[{\"domainName\":\"qwddqwd.io\",\"hostingType\":1}]\";s:7:\"\u0000*\u0000user\";O:45:\"Illuminate\\Contracts\\Database\\ModelIdentifier\":2:{s:5:\"class\";s:8:\"App\\User\";s:2:\"id\";i:1;}s:10:\"connection\";N;s:5:\"queue\";N;s:5:\"delay\";N;s:6:\"\u0000*\u0000job\";N;}"}}
Run Code Online (Sandbox Code Playgroud)
想把字符串json解码成可读的东西.
这是什么样的格式?:)
PS:这是一个Laravel 5.2版本
Ray*_*iez 13
从failed_jobs表中读取
json_decode来自failed_jobs表的有效负载
$jsonpayload = json_decode($payload);
Run Code Online (Sandbox Code Playgroud)
反序列化有效负载命令
$data = unserialize($jsonpayload->data->command);
print_r($data);//This is the data passed to queue
Run Code Online (Sandbox Code Playgroud)
小智 5
我也遇到了问题,因为我无法直接访问生产数据库。我使用 auth 创建了一条路由,我的控制器返回了 json,其中所有失败的作业都已格式化。这是控制器代码。这样我还能够获得由于作业失败而导致的异常的格式化堆栈跟踪
public function getFailedJob()
{
#Fetch all the failed jobs
$jobs = DB::table('failed_jobs')->select()->get();
#Loop through all the failed jobs and format them for json printing
foreach ($jobs as $job) {
$jsonpayload = json_decode($job->payload);
$job->payload = $jsonpayload;
$jsonpayload->data->command = unserialize($jsonpayload->data->command);
$job->exception = explode("\n", $job->exception);
}
return response()->json($jobs);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |