thinkPHP5的隊列使用

一、下載tp5的徹底包,裏面含有queue的擴展。若是沒有執行以下命令:php

 

composer require topthink/think-queue 1.1.4

二、執行第二步:app

執行的隊列:composer

 

<?php 
namespace app\admin\controller;
use think\queue\Job;
use think\Db;
class Work{
   public function fire(Job $job, $data) 
    {
        //執行業務邏輯
       $isJobDone =  Db::name('order_queue')->insert([
        'utime' =>time(),
        'email' =>$data
          ]);

if ($isJobDone) { //成功刪除任務 $job->delete(); } else { //任務輪詢4次後刪除 if ($job->attempts() > 3) { // 第1種處理方式:從新發布任務,該任務延遲10秒後再執行 //$job->release(10); // 第2種處理方式:原任務的基礎上1分鐘執行一次並增長嘗試次數 //$job->failed(); // 第3種處理方式:刪除任務 $job->delete(); } } }
}?>ui

業務文件 Controllerspa

 

public function queue()
    {
        // \think\Queue::push('app\admin\controller\Queue@fire', '284560@qq.com', $queue = '777');
        // \think\Queue::push('app\common\queue\QueueClient@sendMAIL', '28456049@qq.com', $queue = null);
        \think\Queue::push('app\admin\controller\Work@fire', '28456049@qq.com', $queue = '好隊列');
                echo 'ok';
    }

後臺監聽:隊列

 

php think queue:listen
相關文章
相關標籤/搜索