> 队列任务类 app\\queue\\Task.php
修改驱动类型为 redis
~~~
'default' => 'redis',
~~~
~~~
<?php
namespace app\queue;
use think\queue\Job;
class Task
{
/**
* 队列任务
* @param Job $job
* @param [type] $data 自定义数据
*/
public function fire(Job $job, $data)
{
//....这里执行具体的任务
try {
$this->json($data);
######## 执行任务逻辑 ########
$rand = mt_rand(1, 10);
$result = $rand > 5;
if ( $result === true ) throw new \Exception('执行任务发生错误');
######## 执行任务逻辑 / ########
$job->delete();
} catch (\Throwable $th) {
// $job->attempts() 当前任务执行次数
if ( $job->attempts() > 2 ) {
// 如果任务执行成功后 记得删除任务,
// 不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
$job->delete();
} else {
// 重新发布任务
$delay = 1;
$job->release($delay);//$delay为延迟时间
}
}
}
/**
* 任务执行失败时触发
*/
public function failed($data)
{
// 任务达到最大重试次数后,失败了
}
/**
* 执行任务时输出自定义数据
*/
public function json($data)
{
echo json_encode($data, JSON_UNESCAPED_UNICODE) . PHP_EOL;
}
}
~~~
- 搭建ThinkPHP6的开发环境
- 配置ThinkPHP6
- 必要的基础知识(basic)
- MVC开发模式
- 控制器(controller)
- 数据库(database)
- 模型(model)
- 模型关联(relation)
- 视图(view)
- Session
- Cookie
- 缓存(cache)
- 上传(upload)
- 验证器(validate)
- 验证码(captcha)
- 命令行(command)
- 服务器部署(deploy)
- 数据备份(backup)
- 数据同步(synchronization)
- 订阅服务(subscribe)
- PHP 易混淆知识点
- 助手函数
- MySQL规范
- Redis 规范
- office插件 phpoffice
- 拼音插件 pinyin
- 日期插件 datetime
- 消息插件 amqp
- 产品部署环境的搭建
- PDF 等杂项处理
- 文件上传
- 常用扩展
- flc/dysms
- 使用示例 ①
- 使用示例 ②
- qiniu/php-sdk
- 简介
- 使用示例
- 使用示例 2 ②
- liliuwei/thinkphp-jump
- 扩展介绍
- 下载扩展
- 使用方法
- topthink/think-captcha
- 安装扩展
- 验证码显示
- 更换验证码
- 验证码校验
- 验证码配置
- 自定义验证码
- phpoffice/phpspreadsheet
- 数据写入表格
- 读取表格数据
- topthink/think-queue
- 安装
- 自定义函数
- 任务类
- 带有日志的任务类