在chat中想加一個timer來定時執(zhí)行一些業(yè)務。
請問從Event.php里哪個入口開始執(zhí)行好?
從onWorkerStart這里么?
如果要給每個client_id設置一個定時器,那就是在onConnect或者onMessage入口設置。
如果是全局的定時器,就在onWorkerStart里面設置
@damao @walkor
那我是應該start_businessworker.php里添加么?還是加在Event.php里?
use \Workerman\Worker;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader;
// 自動加載類
require_once __DIR__ . '/../../Workerman/Autoloader.php';
Autoloader::setRootPath(__DIR__);
// bussinessWorker 進程
$worker = new BusinessWorker();
// worker名稱
$worker->name = 'ChatBusinessWorker';
// bussinessWorker進程數量
$worker->count = 4;
// 服務注冊地址
$worker->registerAddress = '127.0.0.1:1236';
//定時器
$worker->onWorkerStart = function($task)
{
// 每2.5秒執(zhí)行一次
$time_interval = 2.5;
Timer::add($time_interval, function()
{
echo "task run\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";
});
}
請問是不是如上代碼?多謝指正。