(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。
(2)manager进程开始统一管理进程创建回收管理。
(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程
因此启动swoole我们能看到的进程数是:2+worker_num+task_worker_num,2中包含manager进程和master进程
worker_num是用来处理请求逻辑的进程数,task_num是异步任务投递进程,专门处理异步任务的执行
例如下面的代码:
<?php
//构建Server对象
$server = new swoole_server("127.0.0.1", 9503);
//设置worker进程4个
$server->set([
'worker_num' => 2,
'task_worker_num' => 2,
'daemonize' => false,
]);
//设置客户端连接回调
$server->on('connect', function ($server, $fd) {
});
$server->on('receive', function ($server, $fd, $reactor_id, $data) {
});
//设置客户端关闭回调
$server->on('close', function ($server, $fd) {
});
//设置Task回调
$server->on('Task', function ($serv) {
});
//启动服务器
$server->start();查看进程:
gao 3429 0.0 0.2 238888 21460 tty1 Sl 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3430 0.0 0.0 92684 3204 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3433 0.0 0.0 88260 3364 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3434 0.0 0.0 88260 3384 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3435 0.0 0.0 88676 3524 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3436 0.0 0.0 88676 3552 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php
还可以通过swoole提供的$server->manager_pid和$server->master_pid排除测试
1、允许单个域名访问指定某域名(http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:header('Access-Control-Allow-Origin:http://client....
前公司吃饭是需要在钉钉报餐的,对于不挑剔的我每天都在公司吃饭,有时忘记报餐导致吃不了饭还是很麻烦的。看了下报餐系统需要的是json数据包含我的工号即可。于是编写如下代码,放在360网址监控,1小时执行1次<?php /*自动报餐类*/ class AutoBaocan{...
本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET 基本语法如下:$obj = new DOTNET("assembly", "classname")a...
第一步:服务端文件<?php $wsdlfile='webservice.wsdl'; ini_set('soap.wsdl_cache_enabled','0'); //关闭WSDL缓存 //001...
xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...