ÔõÑùÔÚThinkPHP6ÖÐʵÏÖÐÐÁмà¿Ø£¿
Ëæ×ÅwebÓ¦ÓõÄÒ»Ö±Éú³¤£¬´¦Àí´ó×Ú²¢·¢ÇëÇóÒѳÉΪweb¿ª·¢ÖеÄÒ»¸öÖ÷ÒªÌôÕ½¡£ÎªÁËÌá¸ßÓ¦ÓõÄÐÔÄܺÍÎȹÌÐÔ£¬½â¾ö²¢·¢ÎÊÌ⣬ÐÐÁгÉΪÁË´¦ÀíʹÃüµÄÒ»ÖÖ³£ÓÃÒªÁì¡£thinkphp6×÷Ϊһ¿î¿ìËÙ¡¢¼òÆÓ¡¢ÎÞа¡¢¸ßÐÔÄܵÄphp¿ò¼Ü£¬Ò²ÌṩÁËÍêÉƵÄÐÐÁнâ¾ö¼Æ»®¡£±¾ÎĽ«ÏÈÈÝÔõÑùÔÚthinkphp6ÖÐʵÏÖÐÐÁмà¿Ø¡£
Ò»¡¢Ë¼Ð÷
ThinkPHP6ĬÈϼ¯³ÉÁËRedisºÍÊý¾Ý¿âÐÐÁÐÁ½ÖÖÐÐÁÐÇý¶¯·½·¨¡£µ±ÎÒÃÇʹÓÃÐÐÁÐʱ£¬ÐèÒª½«Ê¹ÃüÌí¼Óµ½ÐÐÁÐÖУ¬Í¬Ê±ÐèÒª¿ªÆôÒ»¸öÊØ»¤Àú³ÌÀ´¼àÌýÐÐÁÐÖÐÊÇ·ñÓÐʹÃüÐèÒªÖ´ÐС£µ«ÎÒÃÇÔÚʹÓÃÐÐÁеÄÀú³ÌÖУ¬³£³£»áÓöµ½Ê¹ÃüÖ´ÐÐʧ°Ü»ò·ºÆðÒì³£µÄÇéÐΡ£ÈôÊÇûÓÐÐÐÁмà¿Ø»úÖÆ£¬ÕâЩÎÊÌ⽫»á¸øÎÒÃÇ´øÀ´ºÜ´óµÄÀ§ÈÅ¡£Òò´Ë£¬ÎÒÃÇÐèÒªÔÚThinkPHP6ÖÐʵÏÖÐÐÁмà¿Ø¡£
¶þ¡¢ÊµÏÖÀú³Ì
1.Ìí¼ÓÏÂÁî
Á¬Ã¦Ñ§Ï°¡°PHPÃâ·ÑѧϰÌõ¼Ç£¨ÉîÈ룩¡±£»
Ê×ÏÈ£¬ÔÚÏîÄ¿¸ùĿ¼Ï½¨ÉèÒ»¸öArtisanÏÂÁÓÃÓÚ»ñÈ¡ËùÓÐÐÐÁÐʹÃüÐÅÏ¢£¬²¢½«ÐÅÏ¢ÒÔJSONÃûÌ÷µ»Ø¡£
<?php namespace appcommand; use thinkrtisanCommand; use thinkconsoleInput; use thinkconsoleOutput; class QueueMonitor extends Command { protected function configure() { $this->setName('queue:monitor')->setDescription('get all queue job info'); } protected function execute(Input $input, Output $output) { //»ñÈ¡ËùÓÐÐÐÁÐʹÃüÐÅÏ¢ $info = queue()->getMonitorInfo(); //ÒÔJSONÃûÌ÷µ»ØÐÅÏ¢ $output->writeln(json_encode($info)); } }
µÇ¼ºó¸´ÖÆ
2.×¢²áÏÂÁî
ÔÚÓ¦Óóõʼ»¯Îļþapp.phpÖУ¬Íê³ÉÏÂÁîµÄ×¢²áÊÂÇé¡£
<?php //×¢²áÏÂÁî return [ 'commands' => [ appcommandQueueMonitor::class, ], ];
µÇ¼ºó¸´ÖÆ
3.Ìí¼Ó·ÓÉ
ÔÚ·ÓÉÉèÖÃÎļþroute.phpÖУ¬Ìí¼ÓÓÃÓÚ»á¼ûÐÐÁмà¿ØÏÂÁîµÄ·ÓÉ¡£ÕâÀï¼ÙÉèÎÒÃÇʹÓõÄÊÇRESTful API·½·¨»á¼û¡£
<?php //½ç˵·ÓÉ use thinkacadeRoute; Route::get('/queue/monitor', 'queue/monitor');
µÇ¼ºó¸´ÖÆ
4.Ìí¼Ó¿ØÖÆÆ÷
½¨ÉèÒ»¸öQueue¿ØÖÆÆ÷£¬ÔڸÿØÖÆÆ÷ÖÐʵÏÖmonitor()ÒªÁ죬½ÓÊÜÀ´×Ô·ÓɵÄÇëÇó²¢Å²ÓÃÏìÓ¦µÄÐÐÁмà¿ØÏÂÁî¡£
public function monitor() { //Ö´ÐÐÐÐÁмà¿ØÏÂÁî hinkacadeArtisan::call('queue:monitor'); //½«ÏÂÁîÖ´ÐÐЧ¹ûת»»ÎªÊý×éÃûÌà $outputData = json_decode( hinkacadeArtisan::output(), true); if (empty($outputData)) { return json(['code' => -1, 'msg' => 'No Data']); } return json(['code' => 1, 'msg' => 'Success', 'data' => $outputData]); }
µÇ¼ºó¸´ÖÆ
ÖÁ´Ë£¬ÎÒÃÇÒѾÍê³ÉÁËÒ»¸ö¼òÆÓµÄʵÏÖÐÐÁмà¿ØµÄ¹¦Ð§£¬ÎÒÃÇ¿ÉÒÔͨ¹ý»á¼ûhttp://yourdomain.com/queue/monitorÀ´»ñÈ¡ËùÓÐÐÐÁÐʹÃüµÄÐÅÏ¢¡£
Èý¡¢ÎÊÌâÓ¦¶Ô
ÔÚÏÖʵ¿ª·¢ÖУ¬ÐÐÁмà¿Ø³£³£»áÓöµ½ÒÔÏÂÎÊÌ⣺
1.ʹÃüÖ´ÐÐʧ°Ü
µ±ÐÐÁмàÌýÀú³ÌÔÚÖ´ÐÐij¸öʹÃüʱ±¬·¢Ò쳣ʱ£¬¿ÉÒÔͨ¹ýÅ׳öÒì³£²¢¼Í¼Òì³£ÈÕÖ¾µÄ·½·¨À´´¦Àí£¬Ò²¿ÉÒÔƾ֤Òì³£µÄÀàÐÍÀ´¾ÙÐвî±ðµÄ´¦Àí¡£ÔÚÕâÀïÎÒÃÇ¿ÉÒÔ½«·ºÆðÒì³£»òÕßʧ°ÜµÄʹÃü¼Í¼ÏÂÀ´£¬×÷ΪʹÃü´¦ÀíµÄ²Î¿¼¡£
2.Öظ´´¦ÀíʹÃü
ÈôÊÇij¸öʹÃüÒѾ±»È¡³öÖ´ÐУ¬ÔÚ´¦ÀíÀú³ÌÖÐÍøÂçÖÐÖ¹»òЧÀÍÆ÷ÒâÍâå´»ú£¬ÐÐÁмàÌýÀú³Ì»áÒÔΪÕâ¸öʹÃü»¹Î´±»Ö´ÐУ¬Ôٴν«ÆäÈ¡³öÖ´ÐС£Òò´Ë£¬ÎÒÃÇÐèÒªÔÚÐÐÁÐÖÐʵÏÖ¶ÔÒÑÖ´ÐеÄʹÃüµÄ±ê¼Ç£¬ÔÚÈ¡³öʹÃü֮ǰ¼ì²â¸ÃʹÃüÊÇ·ñÒѾ±»Ö´Ðйý¡£
3.¼à¿Øʱ¼ä
ÐÐÁмà¿Øʱ¼äÊÇÁíÒ»¸öÐèҪ˼Á¿µÄÎÊÌâ¡£ÔÚ´¦ÀíÍêËùÓÐÐÐÁÐʹÃü֮ǰ£¬ÐÐÁмàÌýÀú³ÌÐèÒª¼á³ÖÔËÐС£¹ØÓÚ³¤Ê±¼äÔËÐеÄÐÐÁмàÌýÀú³Ì£¬ÎÒÃÇÐèҪ˼Á¿ÔõÑù×èÖ¹Àú³ÌÒì³£»òÕß±»Ç¿ÖƹرյÄÇéÐΡ£ÎÒÃÇ¿ÉÒÔÉèÖÃÒ»¸ö¼à¿Øʱ¼äÖÜÆÚ£¬ÀýÈç10·ÖÖÓ£¬Ã¿µ½10·ÖÖÓʱ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýpingÏÂÁî¼ì²éÐÐÁмàÌýÀú³ÌÊÇ·ñ»¹ÔÚÔËÐÐÖУ¬ÈôÊÇÀú³Ì²»±£´æ£¬ÎÒÃÇ¿ÉÒÔʵÑéÖØÐÂÆô¶¯Ò»¸öеÄÐÐÁмàÌýÀú³Ì¡£
×ܽá
±¾ÎÄÏÈÈÝÁËÔõÑùÔÚThinkPHP6ÖÐʵÏÖÐÐÁмà¿Ø£¬¼òÆӵؽ«ÐÐÁмàÌýÀú³ÌµÄÖÎÀíÊÂÇéÕûºÏµ½Ò»¸öÏÂÁîÖУ¬Ê¹ÎÒÃÇ¿ÉÒÔͨ¹ýÏÂÁîÐлò½Ó¿ÚµÄ·½·¨À´»ñÈ¡ÐÐÁÐʹÃüÐÅÏ¢¡£ÐÐÁмà¿ØÊÇ°ü¹ÜÓ¦ÓÃÎȹÌÐÔºÍÐÔÄܵÄÐëÒªÒªÁ죬ÔÚÏÖʵӦÓÃÖУ¬ÎÒÃÇÐèҪƾ֤ÏêϸÐèÇó¶ÔÐÐö¾ÙÐÐÒ»Ö±ÓÅ»¯ºÍˢУ¬ÒÔÈ·±£ÐÐÁеĸßЧºÍÎȹÌÐÔ¡£
ÒÔÉϾÍÊÇÔõÑùÔÚThinkPHP6ÖÐʵÏÖÐÐÁмà¿Ø£¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡