因此,使用队列任务部署应用程序的最简单方法是在部署过程中重新启动任务。您可以通过发出 queue:restart 命令优雅地重新启动所有进程:
Laravel 队列的配置选项存储在 config/queue.php 文件中。 在这个文件中,你可以找到框架中包含的每个队列驱动的连接配置,包括数据库, Amazon SQS, Redis,和 Beanstalkd 驱动,以及一个会立即执行作业的同步驱动(用于本地开发)。还包括一个用于丢弃排队任务的 null 队列驱动。
'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'block_for' => 5, ],注意:将 block_for 设置为 0 将导致队列 workers 一直阻塞,直到某一个任务变得可用。这还能防止在下一个任务被处理之前处理诸如 SIGTERM 之类的信号。
这里我们使用redis 'redis'=>['driver'=>'redis','connection'=>'default','queue'=>env('REDIS_QUEUE','default'),'retry_after'=>env('QUEUE_RETRY_AFTER',90),'block_for'=>null,'after_commit'=>false,],
'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'block_for' => 5, ],[!WARNING] Setting block_for to 0 will cause queue workers to block indefinitely until a job is available. This will also prevent signals such as ...
null, $config['after_commit'] ?? null, $config['migration_batch_size'] ?? -1 ); } connect 返回 RedisQueue 对象,RedisQueue 继承抽象类 Illuminate\Queue\Queue ,执行 setConnectionName 设置队列的连接名称并返回 RedisQueue 对象。 namespace Illuminate\Queue; ... ... abstract class Queue { ....
'queue'=>env('REDIS_QUEUE','default'), 'retry_after'=>90, 'block_for'=>null, 'after_commit'=>false, ], ], 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 在这些连接配置中,我们可以看到 database、beanstalkd、sqs、redis 等相关队列系统的配置。database 其实就是使用数据库来作...
6 'block_for' => 5, 7 'after_commit' => false, 8],Setting block_for to 0 will cause queue workers to block indefinitely until a job is available. This will also prevent signals such as SIGTERM from being handled until the next job has been processed.Other...
First, you may set the after_commit connection option in your queue connection's configuration array:1'redis' => [ 2 'driver' => 'redis', 3 // ... 4 'after_commit' => true, 5],When the after_commit option is true, you may dispatch jobs within database transactions; however, ...
'redis' => [ 'driver' => 'redis', 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => env('REDIS_QUEUE_RETRY_AFTER', 90), 'block_for' => 5, 'after_commit' => false,],...