Skip to content
/ cronJob Public
forked from AnsGoo/cronJob

本项目采用FastAPI + APScheduler + ZeroRPC开发轻量级定时调度平台

License

Notifications You must be signed in to change notification settings

NTHunt/cronJob

 
 

Repository files navigation

CronJob

本项目采用FastAPI + APScheduler + ZeroRPC开发轻量级定时调度平台

特点

  • 完全兼容Crontab
  • 支持秒级定时任务
  • 作业任务可搜索、暂停、编辑、删除
  • 作业任务持久化存储、三种不同触发器类型作业动态添加
  • 采用RPC方式规避了APScheduler在多进程部署的情况下,任务被多次调度的问题
  • 提供图形化的管理页面

TODO

使用

  • 安装虚拟环境管理器
pip install pipenv
  • 获取代码并激活虚拟环境
git clone https://github.com/AnsGoo/cronJob.git
pipenv shell
  • 安装依赖
pipenv sync
  • 运行
// 开发
pipenv run dev --host=0.0.0.0 --port=8000 --reload
pipenv run rpc

// 生产

pipenv run server--workers=4 --host=0.0.0.0 --port=8000
pipenv run rpc
  • 部署

制作镜像

docker build cronjob:v1 .

运行

docker run -p 8000:8000 -p 4242:4242 --name cronjob -it cronjob:v1
  • 开发任务

job/tasks.pyTask对象中自定义以task开头的任务即可在调度方法中调取该任务,例如:

class Task(BaseTask):
    def task_test(self) -> None:
        '''
        测试任务
        :return:
        '''
        print('test')

License

This project is licensed under the terms of the MIT license.

About

本项目采用FastAPI + APScheduler + ZeroRPC开发轻量级定时调度平台

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.1%
  • Dockerfile 1.4%
  • Shell 0.5%