MultiWorker 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
MultiWorker 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
MultiWorker 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
MultiWorker 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
MultiWorker 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 GPL
开发语言 PHP
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具PHP开发工具
开源组织
地区 国产
投 递 者 月影又无痕
适用人群 未知
收录时间 2017-08-21

软件简介

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. 可靠性如何?

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2019/06/16 20:20

3D开发-AR.js 移动端适配

手机端显示不清晰问题 设置THREE.WebGLRenderer参数优化,window.devicePixelRatio手机端的值较大,会导致性能问题。renderer.setPixelRatio设置的值调节到合适即可。 // 调整显示效果 renderer.setPixelRatio(window.devicePixelRatio); 性能优化 THREE.WebGLRenderer渲染需要消耗大量的手机性能,当3D场景较复杂或是中低端的手机会有严重的性能问题。 // 优化节点1:调节setPixelRatio到适当的值 renderer.setPixelRatio(2);...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
7 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部