在chat中想加一個(gè)timer來定時(shí)執(zhí)行一些業(yè)務(wù)。
請(qǐng)問從Event.php里哪個(gè)入口開始執(zhí)行好?
從onWorkerStart這里么?
如果要給每個(gè)client_id設(shè)置一個(gè)定時(shí)器,那就是在onConnect或者onMessage入口設(shè)置。
如果是全局的定時(shí)器,就在onWorkerStart里面設(shè)置
@damao @walkor
那我是應(yīng)該start_businessworker.php里添加么?還是加在Event.php里?
use \Workerman\Worker;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader;
// 自動(dòng)加載類
require_once __DIR__ . '/../../Workerman/Autoloader.php';
Autoloader::setRootPath(__DIR__);
// bussinessWorker 進(jìn)程
$worker = new BusinessWorker();
// worker名稱
$worker->name = 'ChatBusinessWorker';
// bussinessWorker進(jìn)程數(shù)量
$worker->count = 4;
// 服務(wù)注冊(cè)地址
$worker->registerAddress = '127.0.0.1:1236';
//定時(shí)器
$worker->onWorkerStart = function($task)
{
// 每2.5秒執(zhí)行一次
$time_interval = 2.5;
Timer::add($time_interval, function()
{
echo "task run\n";
});
};
// 如果不是在根目錄啟動(dòng),則運(yùn)行runAll方法
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
@walkor
如果是在Event.php里添加的話,是不是參照里面的onMessage()方法來添加,看到里面的都是靜態(tài)方法。
public static function onWorkerStart(){
// 每2.5秒執(zhí)行一次
$time_interval = 2.5;
Timer::add($time_interval, function()
{
echo "task run\n";
});
}
請(qǐng)問是不是如上代碼?多謝指正。