PHP 多进程管理器 MultiWorker

码农软件 · 软件分类 · PHP开发工具 · 2019-11-09 16:12:19

软件介绍

MultiWorker PHP多进程管理器

Multiworker是纯PHP实现的多进程管理器,使用master-worker进程模型,适用于命令行下的多进程调度、并发处理、工作进程崩溃自动恢复、单实例限制。

项目主页 https://github.com/beyosoft/multiworker

bug及使用反馈:zhangxugg@163.com

一、特点:

  1. 使用master-worker进程模型,稳定可靠。 Multiworker运行实例由一个master进程(称为主进程)、多个Worker进程(称为工作进程或子进程)组成,主进程主要工作进程的生成、和退出状态监测。一旦有工作进程异常退出,主进程就会立即再生成一个工作进程,接替其继续工作。因为主进程不参与具体业务逻辑,几乎没有异常退出的可能。

  2. 轻量级、无外部依赖。只有一个类文件、可适用用于任何项目和框架。

  3. 支持单实例功能,配合crontab可实现高可靠性的后台任务。 实际业务中,我们往往希望一个任务由单实例运行,只有前一个实例异常退出时,新的实例才能成功运行,结合crontab和Multiworker的单实例功能,可以很容易实现一个高可靠的后台任务。

  4. 并发任务调度处理。不同的工作进程可负责不同的任务处理,相比单进程可极大提高整体任务处理效率。

  5. 工作进程状态监测。当工作进程以指定的正常状态退出后,主进程不会再生产新的子进程,当所有工作进程以指定的正常状态退出时,主进程认为任务处理完毕,自己同时退出。

  6. 信号控制和进程运行控制。实例在运行中,向主进程发送SIGTERM信号时,主进程会向每个子进程发送信号,告知其及时退出,当所有工作进程退出后,主进程也退出。

二、环境要求

  1. 因为使用Linux信号控制,需要posix扩展,只支持Linux类系统,不支持windows。

  2. 需要php 5.3+。

三、注意事项

  1. 工作进程可以共用一个数据库连接资源吗?

    绝对不能,每个工作进程必须重新建立一个数据库连接,否则会引发不可意料的结果。可以在onWorkerStart回调中关闭主进程已经建立的数据库连接,再重新打开即可。

  2. 如何实现不同的工作进程执行不同的任务?

    onWorkerStart回调的参数,就是进程的PIN(process index number), 它从0开始编号,可以通过判断PIN从而让子进程完成不同的任务。

  3. 可靠性如何?

    久经生产环境实际长久运行,请放心使用。

本文地址:https://codercto.com/soft/d/18621.html

Out of their Minds

Out of their Minds

Dennis Shasha、Cathy Lazere / Springer / 1998-07-02 / USD 16.00

This best-selling book is now available in an inexpensive softcover format. Imagine living during the Renaissance and being able to interview that eras greatest scientists about their inspirations, di......一起来看看 《Out of their Minds》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具