运行queue worker 进程时,您可以使用 queue:work 命令上的 --tries 开关指定任务应尝试的最大次数。 如果您没有为 --tries 选项指定值,则作业将仅尝试一次或与任务类的 $tries 属性指定的次数相同:php artisan queue:work redis --tries=3使用--backoff 选项,你可以指定 Laravel 在重试遇到异常的任务之前应该...
: $this->laravel['config']['queue.default']; $queue = $this->getQueue($connection); $this->runWorker( $connection, $queue ); }首先,我们检查应用程序是否处于维护模式,并使用 --once 选项,在这种情况下,我们希望脚本正常运行,因此我们不执行任何作业,我们只需要在完全杀死脚本前让 worker 在一段...
使用queue:listen确保为每个作业创建一个新的应用程序实例,这意味着代码更改以后不必手动重启worker,同时也意味着将消耗更多的服务器资源。 queue:work 命令 我们来看看Queue\Console\WorkCommand类的handle()方法,这是当你运行php artisan queue:work时会执行的方法: public function handle() { if ($this->downFor...
Laravel 包含了一种方便的方法来指定任务应该尝试的最大次数。如果一个任务已经到达了最大尝试次数,它就会被插入到failed_jobs 数据库表中。要创建 failed_jobs 数据库迁移表,你可以使用 queue:failed-table 命令:php artisan queue:failed-table php artisan migrate然后,当你运行 queue worker,你应该使用queue:work...
php artisan queue:table php artisan migrate Redis 为了使用redis队列驱动,你需要在config/database.php配置文件中配置 Redis 的数据库连接。 Redis 集群 如果你的 Redis 队列驱动使用了 Redis 集群,你的队列名必须包含一个key hash tag。这是为了确保所有的 Redis 键对于一个队列都被放在同一哈希中。
queue:work {connection?: The name of the queue connection to work} {--queue=: The names of the queues to work} {--daemon : Run the workerindaemon mode (Deprecated)} {--once : Only process the next job on the queue} {--delay=0: The number of seconds to delay failed jobs} ...
你在 config/queue.php 配置文件里定义了多个连接,而你传递给 work 命令的连接名字要至少跟它们其中一个是一致的:php artisan queue:work redis 你可以自定义队列处理器,方式是处理给定连接的特定队列。举例来说,如果你所有的邮件都是在 redis 连接中的 emails 队列中处理的,你就能通过以下命令启动一个只处理那个...
之前一直使用 supervisor 来管理进程,但是偶然发现 systemd 已经成为主流并内置于 Ubuntu,所以拿 redis 测试一下效果。 测试环境 ubuntu 18.04 ubuntu 16.04 安装 Redis 下载最新的 redis https://redis.io/download 编译安装 tar xzvf redis-4.0.10.tar.gz cd redis-4.
Supervisor 配置文件通常存放在/etc/supervisor/conf.d 目录,在该目录中,可以创建多个配置文件指示 Supervisor 如何监视进程,例如,让我们创建一个开启并监视queue:work 进程的laravel-worker.conf 文件: 代码语言:javascript 代码运行次数:0 运行 AI代码解释
上面的代码逻辑很简单,代码的核心逻辑在最后一行 runWorker 中,根据传参的不同,执行方法可能为 runNextJob 或者 daemon,由于本文的目的为研究原理,故只分析 daemon 方法。daemon 方法daemon 方法存在于 Illuminate\Queue\Worker 中,具体如下:public function daemon($connectionName, $queue, WorkerOptions $options) ...