All Projects → ppanphper → sw_crontab

ppanphper / sw_crontab

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

Programming Languages

PHP
23972 projects - #3 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
TSQL
950 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to sw crontab

fast-laravel
基于Swoole的高性能HTTP服务器,加速您Laravel应用程序。
Stars: ✭ 33 (+37.5%)
Mutual labels:  crontab, swoole
W7 Rangine Empty
软擎是基于 Php 7.2+ 和 Swoole 4.4+ 的高性能、简单易用的开发框架。支持同时在 Swoole Server 和 php-fpm 两种模式下运行。内置了 Http (Swoole, Fpm),Tcp,WebSocket,Process,Crontab服务。集成了大量成熟的组件,可以用于构建高性能的Web系统、API、中间件、基础服务等等。
Stars: ✭ 246 (+925%)
Mutual labels:  crontab, swoole
Swoole Crontab
基于swoole的定时器程序,支持秒级处理
Stars: ✭ 900 (+3650%)
Mutual labels:  crontab, swoole
TT Jobs
基于 Swoole 定时管理系统
Stars: ✭ 22 (-8.33%)
Mutual labels:  crontab, swoole
cronitor-cli
Command line tools for Cronitor.io
Stars: ✭ 31 (+29.17%)
Mutual labels:  crontab
go-crontab
windows 版 crontab | 基于 golang 的 crontab 定时任务管理器 (替代windows定时任务的一种方案)
Stars: ✭ 18 (-25%)
Mutual labels:  crontab
celery-task-tigger
A controllable timing task widgets with Celery
Stars: ✭ 57 (+137.5%)
Mutual labels:  crontab
asparagus
An easy to use task scheduler for distributed systems
Stars: ✭ 14 (-41.67%)
Mutual labels:  crontab
btrackers-postman
btrackers-postman - BitTorrent Trackers Postman, fetch BitTorrent Trackers URL list from ngosang/trackerslist and post to your aria2 server via jsonrpc.
Stars: ✭ 13 (-45.83%)
Mutual labels:  crontab
octane
Supercharge your Laravel application's performance.
Stars: ✭ 3,038 (+12558.33%)
Mutual labels:  swoole
PHPMailer-Swoole
安装最新版Swoole,开启一键协程化,使用原版phpmailer就可以实现协程化了。本项目已经没有维护下去的意义。
Stars: ✭ 25 (+4.17%)
Mutual labels:  swoole
yii2-websocket
基于swoole的websocket
Stars: ✭ 31 (+29.17%)
Mutual labels:  swoole
ChangeWallpaper
This script downloads the Bing and Nasa daily wallpaper and uses them to changes the background on the Linux and Windows os periodically.
Stars: ✭ 14 (-41.67%)
Mutual labels:  crontab
Agile-Server
A simple, fast, complete Node.js server solution, based on KOA. 简单快速的 、性能强劲的、功能齐全的 node 服务器解决方案合集,基于 KOA。
Stars: ✭ 24 (+0%)
Mutual labels:  crontab
swoole-futures
⏳ Futures, Streams & Async/Await for PHP's Swoole asynchronous run-time.
Stars: ✭ 100 (+316.67%)
Mutual labels:  swoole
swoole
FastD Swoole 基础组件
Stars: ✭ 76 (+216.67%)
Mutual labels:  swoole
lambda-cron
LambdaCron - serverless cron tool
Stars: ✭ 22 (-8.33%)
Mutual labels:  crontab
design-patterns
👨🏻‍💻 Swoole微课程-PHP设计模式相关代码
Stars: ✭ 51 (+112.5%)
Mutual labels:  swoole
gene
Grace, fastest, flexibility, simple PHP extension framework!优雅、极速、灵活、简单的PHP扩展框架!
Stars: ✭ 30 (+25%)
Mutual labels:  swoole
mi-cron
📆 A microscopic parser for standard cron expressions.
Stars: ✭ 16 (-33.33%)
Mutual labels:  crontab

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

1.概述

  • 本系统参考osgochina/Donkey代码实现的.
  • 基于swoole的定时器程序,支持秒级处理.
  • 异步多进程处理.
  • 完全兼容crontab语法,且支持秒的配置.
  • 去中心-多客户端模式,能够横向扩展.
  • web界面管理,增删改查任务,完整的权限控制.
  • 依赖:需要安装pcre,pcre-devel(安装完成后,已经安装swoole扩展的需要重新编译swoole).

2.架构图

架构图

3.流程图

流程图

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.*
PHP 5.6+
Mysql 5.6+
Swoole 1.10.0+
Redis 2.2.8+
PDO_Mysql 1.0.2+
Openssl 1.0+
Pcre 8.0+
Pcre-devel 7.8+
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

  • 任务工作流: 后面的任务依赖前一个任务的执行结果(任务执行顺序?)。
  • 灾难转移: 如果任务允许多台服务器执行,本次在这台服务器执行失败,可以转到其他机器再次尝试执行
  • 管理后台手动指定机器运行任务
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].