网站开发合作协议合同范本微信小程序是干什么用的

web/2025/10/4 14:30:20/文章来源:
网站开发合作协议合同范本,微信小程序是干什么用的,十大网站建设公司,logo模板下载网站推荐进程管理方式首先我们了解一下php的三种不同的进程管理方式#xff1a;static#xff1a;静态管理进程。在启动时#xff0c;master按照pm.max_children配置fork出对应数量的work进程#xff0c;即work的进程是固定不变的。dynamic#xff1a;动态管理进程。在fpm启动时先…进程管理方式首先我们了解一下php的三种不同的进程管理方式static静态管理进程。在启动时master按照pm.max_children配置fork出对应数量的work进程即work的进程是固定不变的。dynamic动态管理进程。在fpm启动时先按照pm.start_servers初始化一定数量的work进程运行期间如果master发现空闲work进程低于pm.min_spare_servers配置数(表示请求比较多work处理不过来)时就会主动fork work进程但是总的work数不能超过pm.max_children然后如果发现空闲的work数超过了pm.max_spare_servers配置数(表示空闲的work比较多)master则会杀掉一些work进程避免占用过多资源。ondemand这种方式一般很少用在启动时不分配worker进程等到有请求了后再通知master进程fork worker进程总的worker数不超过pm.max_children处理完成后worker进程不会立即退出当空闲时间超过pm.process_idle_timeout后再退出下面我们看下fpm在执行完fpm_run()之后master进入fpm_event_loop()的逻辑void fpm_event_loop(int err){//创建一个io read的监听事件这里监听的就是在fpm_init()阶段中通过socketpair()创建管道sp[0]//当sp[0]可读时将回调fpm_got_signal()fpm_event_set(signal_fd_event, fpm_signals_get_fd(), FPM_EV_READ, fpm_got_signal, NULL);fpm_event_add(signal_fd_event, 0);//如果在php-fpm.conf配置了request_terminate_timeout则启动心跳检查if (fpm_globals.heartbeat 0) {fpm_pctl_heartbeat(NULL, 0, NULL);}//定时触发进程管理fpm_pctl_perform_idle_server_maintenance_heartbeat(NULL, 0, NULL);//进入事件循环master进程将阻塞在此while (1) {...//等待IO事件ret module-wait(fpm_event_queue_fd, timeout);...//检查定时器事件...}}这就是master整体的处理其进程管理主要依赖注册的几个事件接下来我们详细分析下这几个事件的功能。(1)sp[1]管道可读事件在fpm_init()阶段master曾创建了一个全双工的管道sp然后在这里创建了一个sp[0]可读的事件当sp[0]可读时将交由fpm_got_signal()处理向sp[1]写数据时sp[0]才会可读那么什么时机会向sp[1]写数据呢前面已经提到了当master收到注册的那几种信号时会写入sp[1]端这个时候将触发sp[0]可读事件。这个事件是master用于处理信号的我们根据master注册的信号逐个看下不同用途SIGINT/SIGTERM/SIGQUIT:退出fpm在master收到退出信号后将向所有的worker进程发送退出信号然后master退出SIGUSR1:重新加载日志文件生产环境中通常会对日志进行切割切割后会生成一个新的日志文件如果fpm不重新加载将无法继续写入日志这个时候就需要向master发送一个USR1的信号SIGUSR2:重启fpm首先master也是会向所有的worker进程发送退出信号然后master会调用execvp()重新启动fpm最后旧的master退出SIGCHLD:这个信号是子进程退出时操作系统发送给父进程的子进程退出时内核将子进程置为僵尸状态这个进程称为僵尸进程它只保留最小的一些内核数据结构以便父进程查询子进程的退出状态只有当父进程调用wait或者waitpid函数查询子进程退出状态后子进程才告终止fpm中当worker进程因为异常原因(比如coredump了)退出而非master主动杀掉时master将受到此信号这个时候父进程将调用waitpid()查下子进程的退出然后检查下是不是需要重新fork新的worker具体处理逻辑在fpm_got_signal()函数中这里不再罗列。(2)fpm_pctl_perform_idle_server_maintenance_heartbeat():这是进程管理实现的主要事件master启动了一个定时器每隔1s触发一次主要用于dynamic、ondemand模式下的worker管理master会定时检查各worker pool的worker进程数通过此定时器实现worker数量的控制处理逻辑如下static void fpm_pctl_perform_idle_server_maintenance(struct timeval *now){for (wp fpm_worker_all_pools; wp; wp wp-next) {struct fpm_child_s *last_idle_child NULL; //空闲时间最久的workerint idle 0; //空闲worker数int active 0; //忙碌worker数for (child wp-children; child; child child-next) {//根据worker进程的fpm_scoreboard_proc_s-request_stage判断if (fpm_request_is_idle(child)) {//找空闲时间最久的worker...idle;}else{active;}}...//ondemand模式if (wp-config-pm PM_STYLE_ONDEMAND) {if (!last_idle_child) continue;fpm_request_last_activity(last_idle_child, last);fpm_clock_get(now);if (last.tv_sec now.tv_sec - wp-config-pm_process_idle_timeout) {//如果空闲时间最长的worker空闲时间超过了process_idle_timeout则杀掉该workerlast_idle_child-idle_kill 1;fpm_pctl_kill(last_idle_child-pid, FPM_PCTL_QUIT);}continue;}//dynamicif (wp-config-pm ! PM_STYLE_DYNAMIC) continue;if (idle wp-config-pm_max_spare_servers last_idle_child) {//空闲worker太多了杀掉last_idle_child-idle_kill 1;fpm_pctl_kill(last_idle_child-pid, FPM_PCTL_QUIT);wp-idle_spawn_rate 1;continue;}if (idle wp-config-pm_min_spare_servers) {//空闲worker太少了如果总worker数未达到max数则fork...}}}(3)fpm_pctl_heartbeat():这个事件是用于限制worker处理单个请求最大耗时的php-fpm.conf中有一个request_terminate_timeout的配置项如果worker处理一个请求的总时长超过了这个值那么master将会向此worker进程发送kill -TERM信号杀掉worker进程此配置单位为秒默认值为0表示关闭此机制另外fpm打印的slow log也是在这里完成的。static void fpm_pctl_check_request_timeout(struct timeval *now){struct fpm_worker_pool_s *wp;for (wp fpm_worker_all_pools; wp; wp wp-next) {int terminate_timeout wp-config-request_terminate_timeout;int slowlog_timeout wp-config-request_slowlog_timeout;struct fpm_child_s *child;if (terminate_timeout || slowlog_timeout) {for (child wp-children; child; child child-next) {//检查当前当前worker处理的请求是否超时fpm_request_check_timed_out(child, now, terminate_timeout, slowlog_timeout);}}}}除了上面这几个事件外还有一个没有提到那就是ondemand模式下master监听的新请求到达的事件因为ondemand模式下fpm启动时是不会预创建worker的有请求时才会生成子进程所以请求到达时需要通知master进程这个事件是在fpm_children_create_initial()时注册的事件处理函数为fpm_pctl_on_socket_accept()具体逻辑这里不再展开比较容易理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扶贫办门户网站建设管理办法ui设计生成器

一般引脚: sbit beepP2^4; //将单片机的P2.4端口定义为beep.本口用于屏蔽上电后蜂鸣器响 sbit ledP1^0; //将单片机的P1.0端口定义为led,用于点亮LED-D1 sbit DIG1P0^0; //数码管位选1 sbit DIG2P0^1; //数码管位选2P10xFF;//初始化P1引脚全部置高&a…

北京专业制作网站公司吗免费微信网站开发

1.引言 在先前探讨中,我们了解到计算机主机内部的硬件资源需要一种高效管控手段,由此催生了操作系统的诞生。操作系统(Operating System,简称OS),是计算机生态系统中不可或缺的核心组件,以其复杂…

网网站建设公司系统开发总结

Linux中的socket 服务端逻辑客户端逻辑c实现c实现服务端持续接收请求多线程实现 UDP实现 参考 服务端逻辑 创建service_sock创建sockaddr_in结构体变量serv_addr,写明端口和ip将socket和结构体绑定监听socket创建客户端sockaddr_in结构体变量clnt_addr接收客户端请…

怎样把自己做的网站上传河南火焰山网站开发禹

EasyJson是Go语言中对象序列化与反序列化的工具,类似Java中的fastjson和Jackson,能快速对对象进行序列化和反序列化,本次介绍一下使用方法。 版本信息: go1.20.2 1,获取源码 # go get go get -u github.com/mailru…

网站建设怎么做账务处理创卫网站 建设 方案

目录 写在开头 socket服务端(基础) socket客户端(基础) 服务端实现(可连接多个客户端) 客户端实现 数据收发效果 写在开头 近期可能会用python实现一些网络安全工具,涉及到许多关于网络…

易购商城网站怎么做啊专门做卫生间效果图的网站

309.最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) dp数组: 模拟状态:买买买 卖 冻卖卖卖 买 卖 dp[i][0] :持有股票 dp[i][1]: 不持有股票,但是之前卖出去的 dp[i][2]: 不持有股票…

南宁网站平台大专动漫设计有出路吗

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 启动工程失败,报错如题: A component required a bean of type gentle.test.Show that could not be found.…

织梦网站后台文章编辑美化代码怎样创建公司网站

介绍 定义了一个Cache结构体,其中使用sync.Map作为底层数据结构来存储缓存项。Set方法用于设置缓存项,指定键、值以及过期时间。Get方法用于获取缓存项,如果缓存项存在且未过期,则返回值和true,否则返回nil和false。方…

建设网站公开教学视频下载做图表用的网站

前言:博主文章仅用于学习、研究和交流目的,不足和错误之处在所难免,希望大家能够批评指出,博主核实后马上更改。 概述: 后续排序按照从上至下或从右至左的顺序进行,具体取决于方向属性的值。WrapPanel 位…

营销网站开发哪家强wordpress副标题的作用

从一篇日记说起我是一个小前端,我有写日记的习惯2020年10月17 天气 晴今天天气不错,心情也跟着好起来了辛辛苦苦加班两个星期终于完成了产品需求,到了要上线的时候了,嘴里也不知不觉哼起了“劳资今晚不加班”的小曲一顿操作猛如虎…

网站空间文件夹网络工程就业前景好吗

直接判断数据过大 相对而言&#xff0c;由2&#xff0c;3&#xff0c;5&#xff0c;7组成的数更少&#xff0c;则先筛选出由2,3,5,7组成的数&#xff0c;再判断这些数中的质数个数即可 #include <iostream> using namespace std; int main() {printf("1903");…

网站买卖交易平台网站制作工具有哪些

104规约从TCP往上&#xff0c;分成链路层和应用层。 如图&#xff0c;APCI就是链路层&#xff0c;ASDU的就是应用层 我们看到报文都是68打头的&#xff0c;因为应用层报文也要交给链路层发送&#xff0c;链路层增加了开头的6个字节再进行发送。 完全用于链路层的报文每帧都只有…

做tcf法语听力题的网站动漫制作专业在广西哪所院校最强

高中那年&#xff0c;我表姐对我说&#xff1a;“不要老想着出去打工赚钱&#xff0c;好好读书&#xff0c;将来肯定有用&#xff0c;也不要想着现在日子长得很&#xff0c;等你像我这样结婚生子后&#xff0c;一天一眨眼就过完了。”当时听了没有多大感觉&#xff0c;如今深以…

企业网站中( )是第一位的。织梦网站怎么做404页面

一、获取当前窗口句柄 1.元素有属性&#xff0c;浏览器的窗口其实也有属性的&#xff0c;只是你看不到&#xff0c;浏览器窗口的属性用句柄&#xff08;handle&#xff09;来识别。 2.人为操作的话&#xff0c;可以通过眼睛看&#xff0c;识别不同的窗口点击切换。但是脚本没长…

长沙网站的建设h5响应式 wordpress

方法一&#xff1a;ssh 方法二&#xff1a;commandK进入远程桌面&#xff0c;这种方式类似于windwos下的远程桌面 转载于:https://www.cnblogs.com/xiyuan2016/p/9020978.html

邵阳营销型网站建设网页游戏排行力荐新壹玩

前言 Redis 的 RDB 持久化机制简单直接&#xff0c;把某一时刻的所有键值对以二进制的方式写入到磁盘&#xff0c;特点是恢复速度快&#xff0c;尤其适合数据备份、主从复制场景。但如果你的目的是要保证数据可靠性&#xff0c;RDB 就不太适合了&#xff0c;因为 RDB 持久化不…

西安高端品牌网站wang域名的网站

列表 列表的元素 有序列表&#xff1a;ol、li无序列表&#xff1a;ul、li自定义列表&#xff1a;dl dt dd 自定义列表 dl 定义列表&#xff0c;直接元素只能是dt、dd dt 列表中每一项的项目名 dd 列表的每一项的具体描述 表格 table 表格border-collapse:collapse; (塌陷的…

上海红酒网站建设沈阳工程建设监理咨询

文章目录 Batch Normalizationinternal covariate shift激活层的作用BN执行的位置数据白化网络中的BN层训练过程 BN的实验效果MNIST与GoogleLeNet V1比较 GoogleLeNet出来之后&#xff0c;Google在这个基础上又演进了几个版本&#xff0c;一般来说是说有4个版本&#xff0c;之前…

与安网站建设广州短视频网站开发

国外主流还是使用apache&#xff1b;国内现在主流是nginx&#xff08;并发能力强&#xff0c;相对稳定&#xff09; nginx&#xff1a;高性能、轻量级的web服务软件 特点&#xff1a; 1.稳定性高&#xff08;没apache稳&#xff09;&#xff1b; 2.系统资源消耗比较低&#xf…

一些设计网站投票链接制作

运行示例项目报错缺少dll&#xff0c;发现运用了这个大老李&#xff0c;通过添加PATH路径也无法解决&#xff0c;看到debug文件夹下面没有其他的依赖项。 通过depneds工具可以看到 OCCTProxy_D3D.dll 缺少依赖项&#xff0c;图中的缺项都是OCCT生成的模块dll所以讲这些dll从..…