在 Laravel 中,为 Redis 队列设置超时非常简单。你只需要在定义队列任务时设置 timeout
属性即可。以下是一个示例:
首先,确保你已经在 .env
文件中配置了正确的 Redis 信息:
QUEUE_CONNECTION=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
接下来,在定义队列任务时设置 timeout
属性。例如,假设你有一个名为 SendEmail
的队列任务,你可以这样设置超时:
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() { // 设置超时时间,单位为秒 $this->timeout = 5; } public function handle() { // 你的任务逻辑 } }
在这个例子中,我们将 timeout
设置为 5 秒。这意味着如果 SendEmail
任务在 5 秒内没有完成,它将被认为是失败的。你可以根据需要调整这个值。