亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php workerman定時任務的實現代碼

2024-05-05 00:06:00
字體:
來源:轉載
供稿:網友

一、下載workerman

https://www.workerman.net/download

二、下載workerman/mysql

http://doc3.workerman.net/640201

1、定時函數為匿名函數(閉包)

use /Workerman/Worker;use /Workerman/Lib/Timer;require_once './Workerman/Autoloader.php';$task = new Worker();// 開啟多少個進程運行定時任務,注意多進程并發問題$task->count = 1;$task->onWorkerStart = function($task){  // 每2.5秒執行一次  $time_interval = 2.5;  Timer::add($time_interval, function()  {    echo "task run/n";  });};// 運行workerWorker::runAll();

2、定時函數為普通函數

require_once './Workerman/Autoloader.php';use /Workerman/Worker;use /Workerman/Lib/Timer;// 普通的函數function send_mail($to, $content){  echo "send mail .../n";}$task = new Worker();$task->onWorkerStart = function($task){  $to = 'workerman@workerman.net';  $content = 'hello workerman';  // 10秒后執行發送郵件任務,最后一個參數傳遞false,表示只運行一次  Timer::add(10, 'send_mail', array($to, $content), false);};// 運行workerWorker::runAll();

3、定時函數為類的方法

require_once './Workerman/Autoloader.php';use /Workerman/Worker;use /Workerman/Lib/Timer;class Mail{  // 注意,回調函數屬性必須是public  public function send($to, $content)  {    echo "send mail .../n";  }}$task = new Worker();$task->onWorkerStart = function($task){  // 10秒后發送一次郵件  $mail = new Mail();  $to = 'workerman@workerman.net';  $content = 'hello workerman';  Timer::add(10, array($mail, 'send'), array($to, $content), false);};// 運行workerWorker::runAll();

4、定時函數為類方法(類內部使用定時器)

require_once './Workerman/Autoloader.php';use /Workerman/Worker;use /Workerman/Lib/Timer;class Mail{  // 注意,回調函數屬性必須是public  public function send($to, $content)  {    echo "send mail .../n";  }  public function sendLater($to, $content)  {    // 回調的方法屬于當前的類,則回調數組第一個元素為$this    Timer::add(10, array($this, 'send'), array($to, $content), false);  }}$task = new Worker();$task->onWorkerStart = function($task){  // 10秒后發送一次郵件  $mail = new Mail();  $to = 'workerman@workerman.net';  $content = 'hello workerman';  $mail->sendLater($to, $content);};// 運行workerWorker::runAll();

5、定時函數為類的靜態方法

require_once './Workerman/Autoloader.php';use /Workerman/Worker;use /Workerman/Lib/Timer;class Mail{  // 注意這個是靜態方法,回調函數屬性也必須是public  public static function send($to, $content)  {    echo "send mail .../n";  }}$task = new Worker();$task->onWorkerStart = function($task){  // 10秒后發送一次郵件  $to = 'workerman@workerman.net';  $content = 'hello workerman';  // 定時調用類的靜態方法  Timer::add(10, array('Mail', 'send'), array($to, $content), false);};// 運行workerWorker::runAll();

6、定時函數為類的靜態方法(帶命名空間)

namespace Task;require_once './Workerman/Autoloader.php';use /Workerman/Worker;use /Workerman/Lib/Timer;class Mail{  // 注意這個是靜態方法,回調函數屬性也必須是public  public static function send($to, $content)  {    echo "send mail .../n";  }}$task = new Worker();$task->onWorkerStart = function($task){  // 10秒后發送一次郵件  $to = 'workerman@workerman.net';  $content = 'hello workerman';  // 定時調用帶命名空間的類的靜態方法  Timer::add(10, array('/Task/Mail', 'send'), array($to, $content), false);};// 運行workerWorker::runAll();

7、定時器中銷毀當前定時器(use閉包方式傳遞$timer_id)

use /Workerman/Worker;use /Workerman/Lib/Timer;require_once './Workerman/Autoloader.php';$task = new Worker();$task->onWorkerStart = function($task){  // 計數  $count = 1;  // 要想$timer_id能正確傳遞到回調函數內部,$timer_id前面必須加地址符 &  $timer_id = Timer::add(1, function()use(&$timer_id, &$count)  {    echo "Timer run $count/n";    // 運行10次后銷毀當前定時器    if($count++ >= 10)    {      echo "Timer::del($timer_id)/n";      Timer::del($timer_id);    }  });};// 運行workerWorker::runAll();

8、定時器中銷毀當前定時器(參數方式傳遞$timer_id)

require_once './Workerman/Autoloader.php';use /Workerman/Worker;use /Workerman/Lib/Timer;class Mail{  public function send($to, $content, $timer_id)  {    // 臨時給當前對象添加一個count屬性,記錄定時器運行次數    $this->count = empty($this->count) ? 1 : $this->count;    // 運行10次后銷毀當前定時器    echo "send mail {$this->count}.../n";    if($this->count++ >= 10)    {      echo "Timer::del($timer_id)/n";      Timer::del($timer_id);    }  }}$task = new Worker();$task->onWorkerStart = function($task){  $mail = new Mail();  // 要想$timer_id能正確傳遞到回調函數內部,$timer_id前面必須加地址符 &  $timer_id = Timer::add(1, array($mail, 'send'), array('to', 'content', &$timer_id));};// 運行workerWorker::runAll();

9、只在指定進程中設置定時器

一個worker實例有4個進程,只在id編號為0的進程上設置定時器。

use Workerman/Worker;use Workerman/Lib/Timer;require_once './Workerman/Autoloader.php';$worker = new Worker();$worker->count = 4;$worker->onWorkerStart = function($worker){  // 只在id編號為0的進程上設置定時器,其它1、2、3號進程不設置定時器  if($worker->id === 0)  {    Timer::add(1, function(){      echo "4個worker進程,只在0號進程設置定時器/n";    });  }};// 運行workerWorker::runAll();

示例

shipments.php用來寫定時任務

<?php/** * Created by PhpStorm. * User: Administrator * Date: 2018/11/29 * Time: 16:59 */use Workerman/Worker;use /Workerman/Lib/Timer;require_once "Workerman/Autoloader.php";require_once "Connection.php";$task = new Worker();$task->onWorkerStart = function ($task) {  global $db, $redis;  $db  = new /Workerman/MySQL/Connection('127.0.0.1', '3306', 'root', 'root', 'test');  $redis = new Redis();  $redis->connect('127.0.0.1', 6379);  $redis->auth("qqq123123.");  $time_interval = 0.1;  Timer::add($time_interval, function () {    global $db, $redis;        $insert['name'] = 123;        $db->insert('shipments')->cols($insert)->query();//    sleep(100);  });};function curlGet($url = '', $options = []){  $ch = curl_init($url);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  curl_setopt($ch, CURLOPT_TIMEOUT, 30);  if (!empty($options)) {    curl_setopt_array($ch, $options);  }  //https請求 不驗證證書和host  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  $data = curl_exec($ch);  curl_close($ch);  return $data;}function newGetOrderInfo($taobao, $orderId){  $taobao = urlencode($taobao);  $url  = "http://114.55.144.79/taobao/TradeFullinfoGetRequest.php?shop=$taobao&tid=$orderId";  $json  = curlGet($url);  return json_decode($json, true)['trade'];}Worker::runAll();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品免费久久久久久| 日韩免费观看在线观看| 国产精品高潮呻吟久久av无限| 色老头一区二区三区在线观看| 91精品国产综合久久男男| 中文字幕九色91在线| 久久久久久国产精品美女| 中文字幕日韩免费视频| 91大神在线播放精品| 亚洲国产精品小视频| 欧美精品午夜视频| 日韩美女激情视频| 神马久久久久久| 欧美日韩美女在线观看| 亚洲国产精品高清久久久| 国产精品欧美亚洲777777| 不卡av电影院| 日韩欧美中文字幕在线观看| 欧美成人国产va精品日本一级| 久久国内精品一国内精品| 国语自产在线不卡| 欧美色另类天堂2015| 在线观看免费高清视频97| 亚洲精品av在线| 日本高清久久天堂| 高跟丝袜欧美一区| 日韩中文在线中文网三级| 精品国产乱码久久久久久虫虫漫画| 成人国产精品一区二区| 亚洲成色999久久网站| 日韩中文第一页| 亚洲春色另类小说| 欧美大片大片在线播放| 亚洲综合视频1区| 日韩欧美精品免费在线| 国产精品亚洲第一区| 国产精品美女www爽爽爽视频| 92看片淫黄大片看国产片| 国模私拍一区二区三区| 一本色道久久88综合亚洲精品ⅰ| 97视频在线观看播放| 国产精品美女av| 亚洲国产精品va在看黑人| 国产精品自产拍在线观看中文| 一区二区福利视频| 91夜夜揉人人捏人人添红杏| 国产精品第2页| 久久久之久亚州精品露出| 久久久久久av| 亚洲精品不卡在线| 国产视频精品久久久| 国产精品va在线| 亚洲国产成人精品电影| 国产精品久久不能| 国产欧美婷婷中文| 在线观看亚洲区| 精品亚洲va在线va天堂资源站| 久久国产色av| 精品国产乱码久久久久久天美| 国产一区二区三区高清在线观看| 日韩精品欧美国产精品忘忧草| 国内揄拍国内精品少妇国语| 热久久99这里有精品| 亚洲欧美999| 久久99精品国产99久久6尤物| 亚洲综合日韩中文字幕v在线| 国产一区二区三区在线播放免费观看| 国产精品18久久久久久麻辣| 国产精品成熟老女人| 中文字幕日本欧美| 一区二区亚洲欧洲国产日韩| 国产精品入口日韩视频大尺度| 欧美午夜视频在线观看| 97在线视频免费| 在线观看精品自拍私拍| 亚洲国产小视频在线观看| 国产精品久久久久久亚洲调教| 国内精品久久久久伊人av| 日韩在线观看高清| 国产日韩中文字幕| 中文字幕国内精品| 欧美日韩精品国产| 日韩欧美成人免费视频| 亚洲成人精品久久久| 国产精品久久久久久久久免费看| 日本视频久久久| 在线电影欧美日韩一区二区私密| 日韩视频永久免费观看| 久久伊人精品一区二区三区| 国产精品igao视频| 精品福利在线视频| 国产亚洲激情在线| 91免费的视频在线播放| 国产精品日韩在线播放| 97福利一区二区| 久久久久久成人| 国产在线拍揄自揄视频不卡99| 日韩欧美在线观看视频| 91在线高清免费观看| 亚洲成av人影院在线观看| 欧美成人黑人xx视频免费观看| 日韩av影片在线观看| 久久久久久噜噜噜久久久精品| 欧美日韩国产中文精品字幕自在自线| 人人澡人人澡人人看欧美| 日韩av在线高清| 一区二区三区精品99久久| 欧美黑人国产人伦爽爽爽| 中文字幕成人在线| 国产欧美精品日韩精品| 欧美视频不卡中文| 国产精品天天狠天天看| 午夜精品一区二区三区在线| 国产成人精品视频在线观看| 91精品视频专区| 91精品国产91久久| 欧美日韩国产成人| 亚洲天堂av高清| 亚洲三级黄色在线观看| 欧美激情视频免费观看| 国产亚洲精品一区二555| 亚洲性线免费观看视频成熟| 中文字幕日韩在线播放| 日韩免费电影在线观看| 久久久久日韩精品久久久男男| 欧美视频在线免费看| 亚洲精品福利资源站| 亚洲精品免费在线视频| 深夜福利亚洲导航| 日韩毛片中文字幕| 亚洲欧洲国产一区| 一区二区三区视频免费| 国产日韩av在线播放| 国产精品com| 亚洲国产日韩欧美在线99| 日韩中文视频免费在线观看| 丝袜美腿精品国产二区| 一个人看的www欧美| 亚洲乱亚洲乱妇无码| 欧美在线一级va免费观看| 色综合91久久精品中文字幕| 国产精品日韩精品| 久久深夜福利免费观看| 欧美放荡办公室videos4k| 国产视频精品va久久久久久| 欧美精品做受xxx性少妇| 日韩av免费在线播放| 欧美性xxxxx极品娇小| 亚洲日本欧美中文幕| 欧美在线观看视频| 久久久久久一区二区三区| 亚洲国产一区二区三区在线观看| 国产精品igao视频| 欧美日韩一区二区在线播放| 一区二区欧美激情| 精品少妇v888av| 国产在线精品一区免费香蕉| 国产成人97精品免费看片| 国产精品视频在线播放| 亚洲大胆人体在线| 狠狠久久五月精品中文字幕| 欧美一级大片在线免费观看| 97免费中文视频在线观看| 免费av在线一区|