<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      導航

      TP6:Worerman定時任務的后臺守護執行

      Posted on 2022-05-10 13:48  eastson  閱讀(1089)  評論(0)    收藏  舉報

      使用Timer創建定時的任務,可以以后臺守護進程的方式執行。

      Worker::runAll()執行時,會執行其中的parseCommand()方法。

      protected static function parseCommand()
      {
          // 守護進程執行方式,只會在LINUX系統下才可以
          if (static::$_OS !== \OS_TYPE_LINUX) {
              return;
          }
          
          // 命令和參數是通過$argv傳遞給Workerman的。
          
          global $argv;
          
          // Check argv;
          $start_file = $argv[0];
          $available_commands = array(
              'start',
              'stop',
              'restart',
              'reload',
              'status',
              'connections',
          );
          
          //
          // 通常的執行命令格式:
          //     php timer.php start
          //       php timer.php start -d
          // 對應的$argv[0]=timer.php,$argv[1]=start
          //
          
          $usage = "Usage: php yourfile <command> [mode]\nCommands: \nstart\t\tStart worker in DEBUG mode.\n\t\tUse mode -d to start in DAEMON mode.\nstop\t\tStop worker.\n\t\tUse mode -g to stop gracefully.\nrestart\t\tRestart workers.\n\t\tUse mode -d to start in DAEMON mode.\n\t\tUse mode -g to stop gracefully.\nreload\t\tReload codes.\n\t\tUse mode -g to reload gracefully.\nstatus\t\tGet worker status.\n\t\tUse mode -d to show live status.\nconnections\tGet worker connections.\n";
          if (!isset($argv[1]) || !\in_array($argv[1], $available_commands)) {
              if (isset($argv[1])) {
                  static::safeEcho('Unknown command: ' . $argv[1] . "\n");
              }
              exit($usage);
          }
      
          // Get command.
          $command  = \trim($argv[1]);
          $command2 = isset($argv[2]) ? $argv[2] : '';
      
          // Start command.
          $mode = '';
          if ($command === 'start') {
              if ($command2 === '-d' || static::$daemonize) {
                  $mode = 'in DAEMON mode';
              } else {
                  $mode = 'in DEBUG mode';
              }
          }
          
          ... ...
      }
      

      所以,Workerman建議的使用方法是,創建單獨的執行文件。

      <?php
      require_once 'vendor/workerman/workerman/Autoloader.php';
      
      use Workerman\Worker;
      use Workerman\Lib\Timer;
      
      $worker = new Worker();
      
      $worker->onWorkerStart = function()
      {
          // 每隔3秒鐘執行一次
          Timer::add(3, function() {
              echo 'Hello ' . date('Y-m-d H:i:s') . PHP_EOL;
          });
      };
      
      Worker::runAll();
      

      如何與Thinkphp的命令模式集成在一起使用的?那就需要在Command文件中按照Workman的要求,重置$argv參數數組。
      參考手把手教你在tp6中實現毫秒級定時任務功能

      protected function initialize(Input $input, Output $output)
      {
      	global $argv;
      	
      	if ($input->hasOption('i'))
      		$this->interval = floatval($input->getOption('i'));
      		
      	$argv[1] = $input->getArgument('status') ?: 'start';
      	
      	if ($input->hasOption('d')) {
      		$argv[2] = '-d';
      	} else {
      		unset($argv[2]);
      	}
      }
      
      主站蜘蛛池模板: 欧美肥老太牲交大战| 亚洲综合一区二区三区视频| 亚洲女人天堂成人av在线| 久久精品国产久精国产| 东台市| 亚洲中文字幕日产无码成人片| 国产91色综合久久高清| 日韩精品欧美高清区| 日本熟妇XXXX潮喷视频| 国产真实乱对白精彩久久| 国产一卡2卡三卡4卡免费网站| 精品午夜福利在线视在亚洲| 国产极品精品自在线不卡| 亚洲精品码中文在线观看| 免费看久久妇女高潮a| 在线涩涩免费观看国产精品| 91精品91久久久久久| 精品中文人妻中文字幕| 精品人妻伦九区久久aaa片69| 日韩福利片午夜免费观着| 国产精品爽爽爽一区二区| 日韩精品国产另类专区| 激情在线网| 九九久久人妻一区精品色| 久久精品国产亚洲av热一区 | 噜妇插内射精品| 亚洲综合国产成人丁香五| 九九热精彩视频在线免费| 久久99日韩国产精品久久99| 国产精品一二二区视在线| 色就色偷拍综合一二三区| 久久久久综合中文字幕| 国产久免费热视频在线观看| 日韩亚av无码一区二区三区 | 无码伊人66久久大杳蕉网站谷歌| 欧美高清狂热视频60一70| 亚洲偷偷自拍码高清视频| 嫩草研究院久久久精品| 国产三级精品片| 成人久久精品国产亚洲av| av无码精品一区二区乱子|