laravel redis 隊(duì)列怎樣設(shè)置超時(shí)

小樊
82
2024-11-13 10:27:48
欄目: 云計(jì)算

在 Laravel 中,為 Redis 隊(duì)列設(shè)置超時(shí)非常簡(jiǎn)單。你只需要在定義隊(duì)列任務(wù)時(shí)設(shè)置 timeout 屬性即可。以下是一個(gè)示例:

首先,確保你已經(jīng)在 .env 文件中配置了正確的 Redis 信息:

QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

接下來,在定義隊(duì)列任務(wù)時(shí)設(shè)置 timeout 屬性。例如,假設(shè)你有一個(gè)名為 SendEmail 的隊(duì)列任務(wù),你可以這樣設(shè)置超時(shí):

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class SendEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $timeout;

    public function __construct()
    {
        // 設(shè)置超時(shí)時(shí)間,單位為秒
        $this->timeout = 5;
    }

    public function handle()
    {
        // 你的任務(wù)邏輯
    }
}

在這個(gè)例子中,我們將 timeout 設(shè)置為 5 秒。這意味著如果 SendEmail 任務(wù)在 5 秒內(nèi)沒有完成,它將被認(rèn)為是失敗的。你可以根據(jù)需要調(diào)整這個(gè)值。

0