https://github.com/sinri/naivejob
PHP Schedule and Queue for Tasks
https://github.com/sinri/naivejob
Last synced: about 1 year ago
JSON representation
PHP Schedule and Queue for Tasks
- Host: GitHub
- URL: https://github.com/sinri/naivejob
- Owner: sinri
- Created: 2019-12-27T09:14:57.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-06-22T15:38:29.000Z (almost 5 years ago)
- Last Synced: 2025-01-29T18:33:29.695Z (over 1 year ago)
- Language: JavaScript
- Size: 506 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NaiveJob
A Job Schedule Solution with PHP
PHP向任务调度解决方案
## 实现简述
1. 使用PCNTL的多进程架构实现主进程消费任务队列,并分发任务给子进程完成。
1. 加入任务队列,只需新增一条设置好类型和参数等的记录到对列表;
2. 队列中只有在入队状态的任务才会被调度消费;
3. 工作子进程数量可控,用完即扔;
2. 定时任务通过定时向任务队列生产任务实现。
1. 设定一个每分钟跑一次的Cron Job以允许Schedule Daemon;
2. 然后在数据库的schedule表中设定定时任务计划;
3. 每种定时任务需要在队列表中设置好运行任务模板;
## API
* 队列 QueueController
* 获取状况速览 dashboardData
* 任务队列明细 listTasksInQueue
* 取消任务 cancelTask
* 将任务入队 enqueueTask
* 复制一个任务 forkTask
* 创建一个任务 createTask
* 规划 ScheduleController
* 获取规划列表 fetchScheduleList
* 创建任务模板 createTaskTemplate
* 创建规划 createSchedule
* 调整规划状态 switchSchedule
* 控制 SwitchController
* 获取命令历史 getControlHistory
* 获取当前命令 getCurrentSwitch
* 发出命令 switchQueue
## 数据库表结构
Schema不限,建议使用UTF8MB4。
建表语句,见 init-db.sql 。