Swoole进程的主要绑定事件(二)

Swoole进程的主要绑定事件(二)


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专心工作。

更多事件详细介绍请去Swoole官网查看

猜你喜欢