PHP多进程系列笔记(五)

2018-06-26
阅读 8 分钟
4.2k
前面几节都是讲解pcntl扩展实现的多进程程序。本节给大家介绍swoole扩展的swoole_process模块。 swoole多进程 swoole_process 是swoole提供的进程管理模块,用来替代PHP的pcntl扩展。 首先,确保安装的swoole版本大于1.7.2: {代码...} 注意:swoole_process在最新的1.8.0版本已经禁止在Web环境中使用了,所以也只能支持...

PHP多进程系列笔记(四)

2018-06-25
阅读 2 分钟
1.8k
本节主要讲解Posix常用函数和进程池的概念,也会涉及到守护进程的知识。本节难度较低。 Posix常用函数 posix_kill 向指定pid进程发送信号。成功时返回 TRUE , 或者在失败时返回 FALSE 。 {代码...} $sig=0,可以检测进程是否存在,不会发送信号。 示例: {代码...} 注:通过 kill -l 可以看到Linux下所有的信号常量。 p...

PHP 多进程系列笔记(三)

2018-06-22
阅读 6 分钟
2k
本节讲解几个多进程的实例。 多进程实例 Master-Worker结构 下面例子实现了简单的多进程管理: 支持设置最大子进程数 Master-Worker结构:Worker挂掉,Master进程会重新创建一个 {代码...} ~~~防盗版声明:本文系原创文章,发布于公众号飞鸿影的博客(fhyblog)及博客园,转载需作者同意。~~~ 多进程Server 下面我们...

PHP多进程系列笔记(二)

2018-06-19
阅读 5 分钟
3.2k
僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程(zombie)进程。任何进程在退出前(使用exit退出) 都会变成僵尸进程(用于保存进程的状态等信息),然后由init进程接管。如果不及时回收僵尸进程,那么它在系统中就会占用一个进程表项,如果这种僵尸进程过多,最后系统就没有可以用的进程表项,...

swoole_event_add实现异步

2018-04-22
阅读 8 分钟
2.9k
swoole提供了swoole_event_add函数,可以实现异步。此函数可以用在Server或Client模式下。 swoole_event_add属于AsyncIO,必须运行在CLI 模式。 异步tcp客户端 stream_socket_client实现tcp同步客户端 示例: {代码...} 上述代码是同步执行的。如何变成异步呢? stream_socket_client实现tcp异步客户端 由于fread读取响...

swoole_process实现多进程

2018-04-22
阅读 5 分钟
4.1k
简介 swoole_process 是swoole提供的进程管理模块,用来替代PHP的pcntl扩展。 首先,确保安装的swoole版本大于1.7.2: {代码...} 实例说明 本例里待消费的是三个shell命令,会分别创建一个子进程来消费。消费的时候故意sleep了1秒,以便直观看到效果。 process_t1.php {代码...} 命令行里运行: {代码...} 大家会觉得很...

Swoole笔记(五)

2017-08-20
阅读 5 分钟
4.2k
设置是否后台运行。默认是false。设置daemonize => 1时,程序将转入后台作为守护进程运行。长时间运行的服务器端程序必须启用此项。

Swoole笔记(四)

2017-08-19
阅读 2 分钟
3.3k
Process Process是swoole内置的进程管理模块,用来替代PHP的pcntl扩展。 swoole_process支持重定向标准输入和输出,在子进程内echo不会打印屏幕,而是写入管道,读键盘输入可以重定向为管道读取数据。 配合swoole_event模块,创建的PHP子进程可以异步的事件驱动模式。 创建子进程 函数原型: {代码...} $function,子进...

Swoole笔记(三)

2017-06-04
阅读 4 分钟
4.5k
WebSocket 使用Swoole可以很简单的搭建异步非阻塞多进程的WebSocket服务器。 WebSocket服务器 {代码...} shell里直接运行php swoole_ws_server.php启动即可。如果设置了后台运行,可以使用下列命令强杀进程: {代码...} 或者重新启动worker进程: {代码...} 输出: {代码...} 注意: onMessage回调函数为必选,当服务器...

Swoole笔记(二)

2017-06-03
阅读 4 分钟
3.7k
本文示例代码详见:[链接]。 重新打开日志 在1.8.11及之后版本支持重新打开日志:向Server主进程发送SIGRTMIN信号。假设主进程id是3427,那么我们可以: {代码...} 注:SIGRTMIN信号的id是34。通过kill -l查看。 那么如何利用这个特征实现每天自动写入新的日志文件里面呢? 假设日志文件是/log/swoole.log,我们可以在每...

Swoole笔记(一)

2017-06-02
阅读 7 分钟
5k
Swoole是一个PHP扩展,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。