> 在common 模塊下 新建 behavior 文件夾 ,創建 AutoGrabOrder.php (示例)
```
<?php
namespace app\common\behavior;
use think\Db;
use think\Queue;
class AutoGrabOrder
{
public function run($param){
// 當輪到該任務時,系統將生成一個該類的實例,并調用其 fire 方法
$jobHandlerClassName = 'app\common\job\AutoGrabOrder';
// 2.當前任務歸屬的隊列名稱,如果為新隊列,會自動創建
$jobQueueName = "AutoGrabOrder";
// 3.當前任務所需的業務數據 . 不能為 resource 類型,其他類型最終將轉化為json形式的字符串
$jobData = [ 'id' => $param['id'], 'bizId' => uniqid()] ;
// 4.將該任務推送到消息隊列,延遲1小時
$isPushed = Queue::later($param['time'],$jobHandlerClassName , $jobData , $jobQueueName );
// database 驅動時,返回值為 1|false ; redis 驅動時,返回值為 隨機字符串|false
if( $isPushed !== false ){
//已加入隊列
Db::name("job_begin_record")->insert([
'data'=>json_encode($param),
'date'=>date("Y-m-d H:i:s",time())
]);
}else{
//任務開始失敗
writeLog($param,"listen/job_begin_failed");
}
}
}
```
> 在common 模塊下 新建 job 文件夾 ,創建 AutoGrabOrder.php (示例)
```
<?php
namespace app\common\job;
use think\Db;
use think\Exception;
use think\queue\Job;
/**
* Class AutoGrabOrder
* @package app\common\job
* 到時間自動解凍 凍結金額
*/
class AutoGrabOrder
{
public function fire(Job $job, $data)
{
try {
//你的處理邏輯
//處理完 刪除隊列
$job->delete();
} catch (Exception $exception) {
// 隊列執行異常
writeLog('queue-' . get_class() . '-AutoGrabOrder' . ':執行異常,錯誤信息:' . $exception->getMessage(), "listen/AutoGrabOrder");
}
}
/**
* @param $data
* 隊列執行失敗
*/
public function failed($data)
{
Db::name("listen_failed")->insert([
"name" => "AutoGrabOrder",
"data" => json_encode($data),
"createtime" => time(),
"updatetime" => time()
]);
}
}
```
> 調用 hook 隊列 ,在 index 模塊下 的 tags.php 添加監聽
```
//
'AutoGrabOrder'=>[
'app\\common\\behavior\\AutoGrabOrder'
]
```
> 控制器里調用
```
$da=["id"=>$id,"time"=>3600];
Hook::listen("AutoGrabOrder",$da);
```
> 寶塔安裝 , Supervisor管理器 2.2
> 添加 守護進程
> 名稱 填 AutoGrabOrder
> 啟動用戶 選擇 root
> 運行目錄選擇 項目目錄
> 啟動命令 `php think queue:listen --queue AutoGrabOrder`
> 進程數量 1
*****
> 如果啟動失敗 ,則 刪除 php 的一些 禁用函數 , exec ,putenv, popen 等等
- 空白目錄
- thinkphp5
- tools-常用類庫
- redis類庫
- Excel類庫
- File文件操作類庫
- Http請求類庫
- Maile郵件發送
- Hooks行為鉤子
- 七牛云
- 隨機數和字符串生成
- 字符串處理
- 時間類處理
- tree型轉換
- 工具類庫
- 文件打包下載
- 常用功能
- 文件上傳
- php生成word文檔
- elasticsearch 基本搜索
- 使用jwt開發API接口
- 安裝模及搭建
- ApiCheck.php
- ApiCheckLogin.php
- common.php
- Login.php
- Comment.php
- 漢字轉拼音
- 安裝使用
- Pinyin類
- elasticsearch操作
- 常用方法
- 數據源生成layui-select
- 獲取自定義配置項
- 百度編輯器
- 格式化文件大小
- 多語言設置
- hook監聽
- 域名綁定到模塊
- thinkphp6
- 文件上傳
- tp5totp6
- 創建路徑
- 獲取類所有方法
- password_hash加密驗證
- 生成 qrcode
- 郵件發送
- 獲取QQ信息
- GoogleAuthenticator
- redis限流
- redis 加鎖
- 百度翻譯
- QueryList爬取數據
- 獲取時間類
- 命令
- Git常用命令
- easyswoole
- pix_qrcode
- 驗證 cpf,cnpj
- php常用方法
- 日志
- 卡通頭像
- 兩位小數
- 圖片轉base64
- auth加密解密
- phpoffice/phpspreadsheet導入導出
- fastadmin
- 樹結構
- 單選框
- 復選框
- 二級搜索
- select選擇框
- selectpage選中回調事件
- 標簽添加
- 修改where條件
- 表格列表中添加input框
- selectpage事件
- fieldlist
- js操作
- test_js
- 多表格
- template模板