×ðÁú¿­Ê±¹ÙÍøµÇ¼

ÔõÑùÔÚ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ÖÐʵÏÖÐÐÁмà¿Ø £¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ