9.回调函数

2019-07-06  本文已影响0人  一个人的北京_

Master进程内的回调函数

onStart   Server启动在主进程的主线程回调此函数

onShutdown此事件在Server正常结束时发生

Manager进程内的回调函数

onManagerStart 当管理进程启动时调用它

onManagerStop  当管理进程结束时调用它

onWorkerError当worker/task_worker进程发生异常后会在Manager进程内回调此函数

Worker进程内的回调函数

onWorkerStart  此事件在Worker进程/Task进程启动时发生

onWorkerStop此事件在worker进程终止时发生。

onConnect有新的连接进入时,在worker进程中回调

onClose   TCP客户端连接关闭后,在worker进程中回调此函数

onReceive接收到数据时回调此函数,发生在worker进程中

onPacket接收到UDP数据包时回调此函数,发生在worker进程中

onFinish当worker进程投递的任务在task_worker中完成时,task进程会通过finish()方法将任务处理的结果发送给worker进程。

onWorkerExit  仅在开启reload_async特性后有效。异步重启特性

onPipeMessage  当工作进程收到由 sendMessage 发送的管道消息时会触发事件

Task进程内的回调函数

onTask在task_worker进程内被调用。worker进程可以使用swoole_server_task函数向task_worker进程投递新的任务

onWorkerStart此事件在Worker进程/Task进程启动时发生

onPipeMessage  当工作进程收到由 sendMessage 发送的管道消息时会触发事件

简单说明:

1、服务器关闭程序终止时最后一次事件是onShutdown。

2、服务器启动成功后,onStart/onManagerStart/onWorkerStart会在不同的进程内并发执

行,并不是顺序的。

3、所有事件回调均在$server->start后发生,start之后写的代码是无效代码。

4、onStart/onManagerStart/onWorkerStart 3个事件的执行顺序是不确定的

 

Swoole的Reactor、Worker、TaskWorker之间可以紧密的结合起来,提供更高级的使用方式。一个更通俗的比喻,假设Server就是一个工厂,那Reactor就是销售,接受客户订单。而Worker就是工人,当销售接到订单后,Worker去工作生产出客户要的东西。而TaskWorker可以理解为行政人员,可以帮助Worker干些杂事,让Worker专心工作。

上一篇 下一篇

猜你喜欢

热点阅读