thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性:
composer require topthink/think-queue
-
- use think\Env;
-
- return [
- 'connector' => 'redis', // // 驱动类型,可选择 sync(默认):同步执行,database:数据库驱动,redis:Redis驱动,topthink:Topthink驱动
- 'expire' => null, // 任务的过期时间,默认为60秒; 若要禁用,则设置为 null
- 'default' => 'defaultQueue', // 默认的队列名称
- 'host' => Env::get('redis.host', '127.0.0.1'), // redis 主机ip
- 'port' => Env::get('redis.port', 6379), // redis 端口
- 'password' => Env::get('redis.password', ''), // redis 密码
- 'select' => Env::get('redis.database', 0), // 使用哪一个 db,默认为 db0
- 'timeout' => 0, // redis连接的超时时间
- 'persistent' => false,
- ];
配置文件中的 expire 参数说明:
expire 参数指的是任务的过期时间, 单位为秒。 过期的任务,其准确的定义是
任务的状态为执行中
任务的开始执行的时刻 + expire > 当前时刻
expire 不为null 时 ,thinkphp-queue 会在每次获取下一个任务之前检查并重发过期(执行超时)的任务