env文件中的QUEUE_CONNECTION变量从而将 database 作为你的应用队列驱动程序:QUEUE_CONNECTION=databaseRedis要使用 redis 队列驱动程序,需要在 config/database.php配置文件中配置一个 redis 数据库连接。Redis 集群如果你的Redis队列当中使用了Redis集群, 那么你的队列名称就必须包含一个 key hash tag.。这是为了确保...
'redis'=>['driver'=>'redis','connection'=>'default','queue'=>'default','retry_after'=>90,'block_for'=>5, ], 其它队列驱动的依赖扩展包 在使用列表里的队列服务前,必须安装以下依赖扩展包: Amazon SQS:aws/aws-sdk-php ~3.0 Beanstalkd:pda/pheanstalk ~3.0 Redis:predis/predis ~1.0 生成任务...
QUEUE_CONNECTION=databaseRedis要使用 redis 队列驱动程序,需要在 config/database.php 配置文件中配置一个 redis 数据库连接。Redis 集群如果你的 Redis 队列当中使用了 Redis 集群,那么你的队列名称就必须包含一个 key hash tag。这是为了确保一个给定队列的所有 Redis 键都被放在同一个哈希插槽:...
$job=(newProcessPodcast($podcast))->onConnection('sqs')->onQueue('processing'); 错误处理 如果任务运行的时候抛出异常,这个任务就自动被释放回队列,这样它就能被再重新运行了。如果继续抛出异常,这个任务会继续被释放回队列,直到重试次数达到你应用允许的最多次数。这个最多次数是在调用queue:workArtisan 命令...
Laravel可配置多种队列驱动,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具体参见app/config/queue.php) 其中sync为同步,database为使用数据库,后面三种为第三方队列服务,最后一种为不使用队列。 通过在 .env 中的 QUEUE_CONNECTION 选项,来决定选择何种驱动。
当然,你可以链式调用 onConnection 和onQueue 来同时指定任务的连接和队列:$job = (new ProcessPodcast($podcast)) ->onConnection('sqs') ->onQueue('processing');指定任务最大尝试次数 / 超时值最大尝试次数在一项任务中指定最大的尝试次数可以尝试通过 Artisan 命令行 --tries 来设置:...
'redis'=>['driver'=>'redis','connection'=>'default','queue'=>'{default}','retry_after'=>90,], 其它队列驱动的依赖扩展包# 在使用列表里的队列服务前,必须安装以下依赖扩展包: Amazon SQS:aws/aws-sdk-php ~3.0 Beanstalkd:pda/pheanstalk ~3.0 ...
1: 该配置文件第一个配置项default用于指定默认的队列驱动,这里我们将其值改为redis(实际上是修改.env中的QUEUE_DRIVER)。 2:connections配置项包含了Laravel支持的所有队列驱动,我们使用Redis驱动,所以需要配置redis项:connection对应config/database.php中redis的default配置; 3:queue为默认队列名称; 4:expire为队列任...
ProcessPodcast::dispatch($podcast)->onQueue('processing'); } }分发任务到指定连接如果你使用了多个队列连接,你可以将任务推到指定连接。要指定连接的话,你可以在分发任务的时候使用 onConnection 方法:<?php namespace App\Http\Controllers; use App\Jobs\ProcessPodcast; use Illuminate\Http\Request; use App...
protectedfunctiongetNextJob($connection,$queue){$popJobCallback=function($queue)use($connection){return$connection->pop($queue);};try{if(isset(static::$popCallbacks[$this->name])){return(static::$popCallbacks[$this->name])($popJobCallback,$queue);}// 依次读取队列列表中每个队列中的任务进行...