在 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è)值。