/** * 接受到一个Tcp客户端发来的数据时触发 * * @param \swoole_server $server 当前进程的swoole_server对象 * @param int $fd 当前连接的文件描述符(惟一) * @param int $from_id 当前连接的Rector线程 * @param string $data 接收到的数据(如果没有设置包头\拆包协议,可能收到的数据会不完整或者黏包) */ public function OnReceive(\swoole_server $server, $fd, $from_id, $data) { /** @var IRequest $request */ $request = RequestFactory::Make($fd, $from_id, $data); Event::Listen('OnRequest', [&$server, &$request]); Dispatcher::Dispatch($request); }
public function Bind() { Event::Add('OnTaskReceived', [$this, 'OnTaskReceived']); Event::Add("OnTaskFinished", [$this, 'OnTaskFinished']); Event::Add('OnFinish', [$this, 'OnFinish']); Event::Add('OnTaskSent', [$this, 'OnTaskSent']); Event::Add('OnRequest', [$this, 'OnRequest']); }
/** * TaskWorker收到任务时触发 * * @param \swoole_server $server * @param int $task_id * @param int $from_id * @param mixed $param */ public function OnTask(\swoole_server $server, $task_id, $from_id, $param) { //Log::Debug("Task accept task_id[$task_id] from_id[$from_id]"); Event::Listen('TaskReceived', [&$server, &$task_id, &$from_id, &$param]); //if($server->worker_id % 2 == 0) //{ // sleep(2); // if(rand(0, 100) > 50) // { // //return; // } //} Event::Listen('TaskFinished', [&$server, &$task_id, &$from_id, &$param]); $server->finish('finish'); }
public function OnManagerStop(\swoole_server $server) { Event::Listen('OnManagerStop', [&$server]); $this->managerServer->OnManagerStop($server); }
public static function TaskWait($data, $timeout = 0.5, $taskWorkerID = -1) { /** @var \swoole_server $instance */ $instance = self::getFacadeRoot(); Event::Listen('TaskWaitWillSend', [$data, $timeout, $taskWorkerID]); return $instance->taskwait($data); }
/** * Task一次工作结束以后,在Worker进程中被触发(如果在Task中执行了Finish方法) * * @param \swoole_server $server 当前进程的swoole_server对象 * @param int $task_id 结束工作的Task的ID * @param mixed $taskResult 在OnTask方法中被Return的数据。 */ public function OnFinish(\swoole_server $server, $task_id, $taskResult) { Event::Listen('OnFinish', [&$server, &$task_id, &$taskResult]); }
public function Bind() { Event::Add(['OnClose'], [$this, '']); }
/** * 启动应用程序 */ public function Start() { static::SetInstance($this); $this->bindBaseClass(); $this->AutoRegistry("Application.php"); $this->bindCoreAliases(); Event::Add('OnMasterStart', [$this, 'RecordPID']); Bootstrapper::Boot(); }