> 隊列任務類 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
- 安裝
- 自定義函數
- 任務類
- 帶有日志的任務類