worker进程和task进程区别_swoole的worker和task区别

半夜读码,这句话最能说明问题:

官方的GIT源码地址:

http://git.oschina.net/matyhtf/swoole/blob/master/examples/task/shared_server.php?dir=0&filepath=examples%2Ftask%2Fshared_server.php&oid=1f2b225b5a7e4ed1c3c435fbcea2b1fdcf7353f1&sha=2905d2b579ddc2911c15db6d9d2f427b8ade63dd

代码这句话:

function my_onWorkerStart($serv, $worker_id)

{

global $argv;

if ($worker_id >= $serv->setting['worker_num']) {

swoole_set_process_name("php {$argv[0]} task worker");

} else {

swoole_set_process_name("php {$argv[0]} event worker");

}

//echo "WorkerStart|MasterPid={$serv->master_pid}|Manager_pid={$serv->manager_pid}|WorkerId=$worker_id\n";

//$serv->addtimer(500); //500ms

}

在看官方给的说明文档中说明了在task和worker都会调用这个onWorkStart方法。

那么,这两个到底是什么区别?

如果大于设定的work_num就是task 进程,如果还在,那就是event worker。

按照官方给的文档,逻辑里是,有一个master 进程,还有一个进程manager进程,worker是基于event触发,而task则是manager直接生成的子进程。


版权声明:本文为weixin_30246833原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。