国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

定時器中的邏輯代碼修改后,執(zhí)行reload后新代碼不生效

猴子

新建一個定時器,修改部分代碼
之后php start.php reload定時器
新修改的部分代碼不生效

<?php
use \Workerman\Worker;
use \Workerman\Lib\Timer;
require_once './Workerman/Autoloader.php';

$task = new Worker();
// 開啟多少個進程運行定時任務,注意多進程并發(fā)問題
$task->count = 1;
$task->name = "TimerWorker";
$task->reloadable = true;
$task->onWorkerStart = function ($task) {
    Timer::add(1, function () {
        logLib::out("timerfdsa");
    });
};

// 運行worker
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

我無論怎么修改logLib::out("timerfdsa");都不生效,除非是執(zhí)行php start.php restart

6992 5 0
5個回答

walkor 打賞

手冊有說明,只有在onXX載入的文件才能reload(或者說Worker::runAll() 運行后載入的文件才能reload)。主進程寫死的代碼無法reload。

  • 暫無評論
猴子

恩,那我現(xiàn)在需要怎么處理這部分邏輯??梢宰屛业亩〞r器代碼reload的時候可以生效。每次重啟服務器端很傷人啊

  • 暫無評論
猴子
<?php
use \Workerman\Worker;
use \Workerman\Lib\Timer;
require_once './Workerman/Autoloader.php';

$task = new Worker();
// 開啟多少個進程運行定時任務,注意多進程并發(fā)問題
$task->count = 1;
$task->name = "TimerWorker";
$task->reloadable = true;

$task->onWorkerStart = function ($task) {
    logLib::out("onWorkerStart!");
    Timer::add(1, function () {
        logLib::out("testfdas!!!");
    });
};
// 運行worker
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

完整的測試代碼。文件名start_timer.php
上面這段代碼,LogLib::out部分怎么修改,reload后都不生效

  • 暫無評論
walkor 打賞

首先:定時器函數(shù)寫到單獨文件

通過自動加載機制加載這個單獨文件。
如果不懂自動加載就在onWorkerStart中require進來。

  • 暫無評論
猴子

太感謝了。可以了

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??