php横向扩展,基于swoole的定时器程序,支持秒级处理,去中心化架构,可横向扩展...

SWC(Swoole-Crontab)分布式定时任务系统

1.概述

基于swoole的定时器程序,支持秒级处理.

异步多进程处理.

完全兼容crontab语法,且支持秒的配置.

去中心-多客户端模式,能够横向扩展.

web界面管理,增删改查任务,完整的权限控制.

依赖:需要安装pcre,pcre-devel(安装完成后,已经安装swoole扩展的需要重新编译swoole).

2.架构图

a25e2fb007ef806eb011e7b86516b8c5.png

3.流程图

12c7b27c25675eb16fcbcd30696595c3.png

4.Crontab配置

介绍一下时间配置

0 1 2 3 4 5

| | | | | |

| | | | | +------ day of week (0 - 6) (Sunday=0)

| | | | +------ month (1 - 12)

| | | +-------- day of month (1 - 31)

| | +---------- hour (0 - 23)

| +------------ min (0 - 59)

+-------------- sec (0-59)[可省略,如果没有0位,则最小时间粒度是分钟]

5.环境要求

Requirements

1.0.*

5.6+

1.10.0+

2.2.8+

8.0+

Install with Composer...

~1.4

6.开始使用

1.安装环境依赖

yum install -y pcre pcre-devel

编译安装swoole、openssl、redis等扩展

2.安装代码依赖包:

1、curl -sS https://getcomposer.org/installer | /path/to/php

2、mv composer.phar /usr/local/bin/composer

3、分别进入前后端项目目录: cd /path/to/admin 和 cd /path/to/agent

4、执行安装依赖的类库: /usr/local/bin/php /usr/local/bin/composer install

(期间可能需要提供GitHub的token,自己创建一个[https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+localhost.localdomain+2018-05-18+1719])

3.管理后台的配置文件修改

/path/to/admin/config/dev/db.php 修改数据库配置

/path/to/admin/config/dev/redis.php 修改Redis配置

/path/to/admin/config/mailer.php 修改邮件配置

/path/to/admin/config/params.php 修改其他参数配置

4.Agent配置文件修改

/path/to/agent/Config/dev/db.php 修改数据库配置

/path/to/agent/Config/dev/redis.php 修改Redis配置

/path/to/agent/Config/email.php 修改邮件配置

5.启动agent节点

1、使用Supervisord守护进程启动,把agent目录下的swcAgent.conf配置文件放到Supervisord的include目录下,修改执行路径

然后使用命令启动: supervisorctl start swcAgent

2、不使用Supervisord启动,直接使用命令: /usr/local/bin/php /path/to/agent/agent.php start; 启动supervisor会自动运行这个command

6.启动监控节点脚本(监控所有节点是否正常,如果没有上报,会有报警邮件通知管理人员)

1、使用Supervisord守护进程启动,把admin目录下的swcMonitor.conf配置文件放到Supervisord的include目录下,修改执行路径

然后使用命令启动: supervisorctl start swcMonitor

2、不使用Supervisord启动,直接使用命令: /usr/local/bin/php /path/to/admin/yii monitor; 启动supervisor会自动运行这个command

7.帮助信息

* Usage: /path/to/agent/agent.php start|restart|stop|reload|stats

8.TODO

任务工作流: 后面的任务依赖前一个任务的执行结果(任务执行顺序?)。

灾难转移: 如果任务允许多台服务器执行,本次在这台服务器执行失败,可以转到其他机器再次尝试执行

管理后台手动指定机器运行任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值