成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

laravel failed_job 還原

岳光 / 2847人閱讀

摘要:會(huì)把執(zhí)行失敗的放到表里,存儲(chǔ)了的信息,我們需要還原里的對(duì)象分析失敗原因。方式不會(huì)解析任何的轉(zhuǎn)義字符,可以保證字符串的完整性。

laravel會(huì)把執(zhí)行失敗的job放到failed_job表里,payload存儲(chǔ)了job的信息,我們需要還原job里的對(duì)象分析失敗原因。

跟蹤源碼發(fā)現(xiàn),對(duì)job對(duì)象進(jìn)行了序列化,然后加上其他參數(shù)進(jìn)行json轉(zhuǎn)化,那我們反其道而行就可以

vendor/illuminate/queue/Queue.php:85

json_encode([
                "job" => "IlluminateQueueCallQueuedHandler@call",
                "data" => ["command" => serialize(clone $job)],
            ]);

直接把failed_job表里的payload賦值給變量,再解析就行了。這里需要注意字符串轉(zhuǎn)義的問(wèn)題,這也是我使用nowdoc方式的原因。nowdoc方式不會(huì)解析任何的轉(zhuǎn)義字符,可以保證json字符串的完整性。

$jobStr = <<<"EOF"
{"job":"IlluminateQueueCallQueuedHandler@call","data":{"command":"O:19:"AppJobsCaseReport":6:{s:5:"queue";s:12:"cases-report";s:7:"u0000*u0000case";i:6369701;s:7:"u0000*u0000pool";i:20;s:9:"u0000*u0000record";N;s:6:"u0000*u0000job";N;s:5:"delay";N;}"},"id":"c43gA7efKgVl9TavrqloRBiRY9sD0KeD","attempts":2}
EOF;

$job = json_decode($jobStr,true);
$command = $job["data"]["command"];
$obj = unserialize($command);
dd($obj);

輸出:

AppJobsCaseReport {#116
  +queue: "cases-report"
  #case: 6369701
  #pool: 20
  #record: null
  #job: null
  +delay: null
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31513.html

相關(guān)文章

  • laravel/lumen 使用 redis隊(duì)列

    摘要:配置項(xiàng)用于配置失敗隊(duì)列任務(wù)存放的數(shù)據(jù)庫(kù)及數(shù)據(jù)表。要使用隊(duì)列驅(qū)動(dòng),需要在配置文件中配置數(shù)據(jù)庫(kù)連接。如果應(yīng)用使用了,那么可以使用時(shí)間或并發(fā)來(lái)控制隊(duì)列任務(wù)。你可以使用命令運(yùn)行這個(gè)隊(duì)列進(jìn)程。如果隊(duì)列進(jìn)程意外關(guān)閉,它會(huì)自動(dòng)重啟啟動(dòng)隊(duì)列進(jìn)程。 一、概述 在Web開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到需要批量處理任務(wù)的場(chǎng)景,比如群發(fā)郵件、秒殺資格獲取等,我們將這些耗時(shí)或者高并發(fā)的操作放到隊(duì)列中異步執(zhí)行可以有效緩解系...

    mengbo 評(píng)論0 收藏0
  • Laravel5.2隊(duì)列驅(qū)動(dòng)expire參數(shù)設(shè)置帶來(lái)的重復(fù)執(zhí)行問(wèn)題 數(shù)據(jù)庫(kù)驅(qū)動(dòng)

    摘要:已經(jīng)取消了參數(shù),都用來(lái)執(zhí)行。取數(shù)據(jù)的過(guò)程事物處理已經(jīng)打開(kāi)。取得符合條件的隊(duì)列后程序會(huì)更新該條數(shù)據(jù),并且更新完后即。 connections => [ .... database => [ driver => database, table => jobs, queue => defaul...

    ysl_unh 評(píng)論0 收藏0
  • Laravel中使用數(shù)據(jù)庫(kù)事務(wù)以及捕獲事務(wù)失敗后的異常

    摘要:在中要想在數(shù)據(jù)庫(kù)事務(wù)中運(yùn)行一組操作,則可以在中使用方法。如果在事務(wù)的閉包內(nèi)拋出異常,事務(wù)將會(huì)被自動(dòng)還原。 Description 在Laravel中要想在數(shù)據(jù)庫(kù)事務(wù)中運(yùn)行一組操作,則可以在 DB facade 中使用 transaction 方法。如果在事務(wù)的閉包內(nèi)拋出異常,事務(wù)將會(huì)被自動(dòng)還原。如果閉包運(yùn)行成功,事務(wù)將被自動(dòng)提交。你不需要擔(dān)心在使用 transaction 方法時(shí)還需要...

    newtrek 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<