摘要:會把執行失敗的放到表里,存儲了的信息,我們需要還原里的對象分析失敗原因。方式不會解析任何的轉義字符,可以保證字符串的完整性。
跟蹤源碼發現,對job對象進行了序列化,然后加上其他參數進行json轉化,那我們反其道而行就可以
vendor/illuminate/queue/Queue.php:85 json_encode([ "job" => "IlluminateQueueCallQueuedHandler@call", "data" => ["command" => serialize(clone $job)], ]);
直接把failed_job表里的payload賦值給變量,再解析就行了。這里需要注意字符串轉義的問題,這也是我使用nowdoc方式的原因。nowdoc方式不會解析任何的轉義字符,可以保證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 }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31513.html
摘要:配置項用于配置失敗隊列任務存放的數據庫及數據表。要使用隊列驅動,需要在配置文件中配置數據庫連接。如果應用使用了,那么可以使用時間或并發來控制隊列任務。你可以使用命令運行這個隊列進程。如果隊列進程意外關閉,它會自動重啟啟動隊列進程。 一、概述 在Web開發中,我們經常會遇到需要批量處理任務的場景,比如群發郵件、秒殺資格獲取等,我們將這些耗時或者高并發的操作放到隊列中異步執行可以有效緩解系...
摘要:已經取消了參數,都用來執行。取數據的過程事物處理已經打開。取得符合條件的隊列后程序會更新該條數據,并且更新完后即。 connections => [ .... database => [ driver => database, table => jobs, queue => defaul...
摘要:在中要想在數據庫事務中運行一組操作,則可以在中使用方法。如果在事務的閉包內拋出異常,事務將會被自動還原。 Description 在Laravel中要想在數據庫事務中運行一組操作,則可以在 DB facade 中使用 transaction 方法。如果在事務的閉包內拋出異常,事務將會被自動還原。如果閉包運行成功,事務將被自動提交。你不需要擔心在使用 transaction 方法時還需要...
閱讀 2902·2023-04-26 02:14
閱讀 3751·2019-08-30 15:55
閱讀 1843·2019-08-29 16:42
閱讀 2757·2019-08-26 11:55
閱讀 2846·2019-08-23 13:38
閱讀 480·2019-08-23 12:10
閱讀 1308·2019-08-23 11:44
閱讀 2790·2019-08-23 11:43