<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                --- ## 1. laravel 任務隊列訂單超時支付或者報名超時支付 ![圖片alt](/media/editor/1623219940049_20210603145651159773.png ''圖片title'') ### 1. 創建一個隊列任務文件 php artisan make:job OrderUnpaidTimeEndJob ### 2. 選擇隊列存儲的方式 (兩種方式) QUEUE_CONNECTION=database QUEUE_CONNECTION=redis ### 3. 創建數據表并啟動隊列 > ps: 因為這里選擇的是database就只能先創建兩個數據表 php artisan queue:failed-table //失敗的隊列 php artisan queue:table //進行中的任務隊列 php artisan migrate php artisan queue:work //啟動隊列 php artisan queue --help //查看幫助 ### 4. 監聽我們的隊列并生成日志文件 `AppServiceProvider.php` public function boot() { Queue::before(function (JobProcessing $event) { $message = ''; $queueData = [ 'action' => $event->job->resolveName(), 'context' => [ 'queue_id' => $event->job->getJobId(), 'data' => [ 'connection' => $event->connectionName, 'body' => $event->job->payload(), ] ], ]; switch ($queueData['action']) { case "App\\Jobs\\OrderUnpaidTimeEndJob": $message = 'StudentSemester_before'; } \Log::error($message, $queueData); }); Queue::after( function (JobProcessed $event) { $message = ''; $queueData = [ 'action' => $event->job->resolveName(), 'context' => [ 'queue_id' => $event->job->getJobId(), 'data' => [ 'connection' => $event->connectionName, 'body' => $event->job->payload(), ] ], ]; switch ($queueData['action']) { case "App\\Jobs\\OrderUnpaidTimeEndJob": $message = 'StudentSemester_after'; } \Log::error($message, $queueData); }); } ### 5. 如何在代碼中進行啟動 dispatch(new OrderUnpaidTimeEndJob(); > 構造函數編寫如下 private $create_time; public function __construct() { // $this->delay($this->create_time->addSeconds(10)); //測試秒超時時間 $this->delay($this->create_time->addMinutes($delayTime)); //真實超時時間 } > 在延遲時間過后會出現執行下面的句柄 public function handle() { $studentSemesterStatus = (new UserService())->systemCancel($this->id); if(!$studentSemesterStatus){ //發送取消保密性信息 MSG TODO $this->job->delete(); //延遲發送 } } > 失敗后記錄日志 public function failed($exception = null) { \Log::error('studentSemesterService: ' . $exception->getMessage()); //記錄日志 //失敗后的操作 TODO } ### 6. 測試的方法 > #### 在 phpunit 中我們需要修改如下代碼下面的是同步方法, 異步就填寫為 database <server name="QUEUE_CONNECTION" value="sync"/> > #### 配置文件生效不點擊可能生效不了 ![圖片alt](/media/editor/1624248117818_20210616122058745383.png ''圖片title'') ### 7. 如何重試失敗的隊列, 使用 Laravel 的門面方法 Artisan::call('queue:retry', ['id' => [$id]]); ### 8. 配合 node.js 的任務管理器 ecosystem.config.js module.exports = { apps: [{ name: 'queue order', script: 'artisan', 'cwd': '/apps', args: 'queue:work', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', interpreter: 'php', env: { NODE_ENV: 'development' }, env_production: { NODE_ENV: 'production' } }], };
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看