簡體   English   中英

Laravel 隊列作業執行延遲

[英]Laravel Queued job execution with delay

我正在使用 Laravel 排隊作業來簡單地以 JSON 格式創建我的表的副本,然后刪除創建的文件。 這是我的處理方法:

public function handle()
{
    unlink($this->file);
}

只要我在響應后立即發送文件,代碼就可以正常工作:

DeleteCreatedFiles::dispatchAfterResponse(/* File path */);

但是我想在刪除之前將文件保留一段時間,所以我使用了這段代碼:

DeleteCreatedFiles::dispatch(/* file path */)
        ->delay(now()->addSeconds(30));

問題是,無論我等待多久,這項工作都不會執行。 我嘗試使用望遠鏡,它一直顯示待處理狀態。 請幫我弄清楚為什么會這樣。 謝謝!

  1. 首先,您必須將.env文件中的隊列驅動程序設置為不sync

因為如果您的工作被延遲,則必須排隊。 所以不應該使用同步選項

  1. 然后創建一個隊列

基於隊列驅動程序(如數據庫,redis,...),您可以創建一個隊列。

  1. 運行一個工人:
  • 對於單線程運行:
php artisan queue:work

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM