ndscheduler:来自nextdoor的cron替换库
ndscheduler的Python项目详细描述
#下一个调度程序
![阿帕奇](https://img.shields.io/hexpm/l/plug.svg)
[![构建状态](https://travis ci.org/nextdoor/ndscheduler.svg)(https://travis ci.org/nextdoor/ndscheduler)
``ndscheduler``是一个灵活的python库,用于构建自己的类cron系统来调度作业,即运行tornado进程来为restapi和web ui提供服务。就像[llvm]一样(http://llvm.org/),它为构建编译器提供了模块化和可重用的组件。
查看我们的博客文章-[我们不在nextdoor运行cron作业](https://engblog.nextdoor.com/we-don-t-run-cron-jobs-at-nextdoor-6f7f9cc62040.d2erw1pl6)
**``ndscheduler``当前在Mac OS X/Linux上支持Python2&;3。**
tractions](关键抽象)
*[立即尝试](立即尝试)
*[如何构建自己的cron替换](如何构建自己的cron替换)
*[安装ndscheduler](安装ndscheduler)
*[三件事](三件事)
*[参考实现](参考implementation)
*[为ndscheduler贡献代码](为ndscheduler贡献代码)
*[rest api](rest api)
*[web ui](web ui)
关键抽象
*[核心](https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/core):一堆可恢复组件
*[数据存储](https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/core/datastore):管理数据库连接并进行查询;可以支持postgres、mysql和sqlite。
*job:表示一个调度作业并决定如何运行一个并行作业。
*execution:presseNTS作业执行的实例。
*auditlog:记录何时和谁运行什么作业。
*[schedule manager](https://github.com/nextdoor/ndscheduler/blob/master/ndscheduler/core/scheduler_manager.py):访问数据存储以管理作业,即调度/修改/删除/暂停/恢复作业。
*[serve(https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/server):运行ScheduleManager并提供rest API和服务UI的Tornado服务器。
*[Web UI](https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/static):单页HTML应用程序;这是默认实现打开。
88%(http://localhost:8888)。
**演示**
(单击可全屏播放)
![ndscheduler demo](https://giant.gfycat.com/nastybossybeaver.gif)
如何使用pip(来自github repo)构建自己的cron替换
安装ndscheduler
#
如果您想要特定的标记版本
git+https://github.com/nextdoor/ndscheduler.git@v0.1.0\egg=ndscheduler
\nextdoor/ndscheduler.git=ndscheduler
pip install-e git+https://github.com/nextdoor/ndscheduler.git很快到pypi。)
调度程序](https://github.com/nextdoor/ndscheduler/blob/master/simple_scheduler/settings.py)。您需要指定python导入pa在运行服务器之前,在环境变量"ndscheduler\u settings\u module"中输入th。
所有可用的设置都可以在[默认设置.py](https://github.com/nextdoor/ndscheduler/blob/master/ndscheduler/default\u settings.py)文件中找到。
**服务器**
导入并运行``ndscheduler.server.server.schedulerServer`.
**作业**
每个作业都应该是一个独立的类,它是``ndscheduler.job.jobbase``的子类,并将作业的主逻辑置于``run()``函数中。
``还有"作业",你可以这样运行整个过程:
pythonpath=.:$(pythonpath)\
python simple_scheduler/scheduler.py
ithub.com/nextdoor/ndscheduler/tree/master/simple_scheduler)灵感目录:)
run it
xtdoor/ndscheduler/tree/master/simple_scheduler/jobs)。
*awesomejob:它只打印出您传入的2个参数。
*slackjob:它定期发送一条松弛消息,例如团队站立提醒。
*shelljob:它运行一个可执行命令,例如,运行curl对网页进行爬网。
*curljob:就像定期运行[curl](http://curl.haxx.se/)。
在setup.py中新的依赖项,您必须运行这个
make install
**运行单元测试**
**make test
**clean everything and start from scratch**
>最后,发送拉取请求。请确保[CI](https://travis-ci.org/nextdoor/ndscheduler)通过您的PR。
提供Web UI的默认实现。您可以通过覆盖这些设置来替换默认的web ui
static_dir_path=:static asset目录路径:
template_dir_path=:template目录路径:
app_index_page=:单页应用的html的文件名:
工作的数量**
![作业列表](http://i.imgur.com/dgilbkz.png)
**执行列表**
![执行列表](http://i.imgur.com/jpjzrlu.png)
**审核日志**
![审核日志](http://i.imgur.com/ehlzhhw.png)
**修改作业**
![修改作业](http://i.imgur.com/awv6xor.png)
![阿帕奇](https://img.shields.io/hexpm/l/plug.svg)
[![构建状态](https://travis ci.org/nextdoor/ndscheduler.svg)(https://travis ci.org/nextdoor/ndscheduler)
``ndscheduler``是一个灵活的python库,用于构建自己的类cron系统来调度作业,即运行tornado进程来为restapi和web ui提供服务。就像[llvm]一样(http://llvm.org/),它为构建编译器提供了模块化和可重用的组件。
查看我们的博客文章-[我们不在nextdoor运行cron作业](https://engblog.nextdoor.com/we-don-t-run-cron-jobs-at-nextdoor-6f7f9cc62040.d2erw1pl6)
**``ndscheduler``当前在Mac OS X/Linux上支持Python2&;3。**
tractions](关键抽象)
*[立即尝试](立即尝试)
*[如何构建自己的cron替换](如何构建自己的cron替换)
*[安装ndscheduler](安装ndscheduler)
*[三件事](三件事)
*[参考实现](参考implementation)
*[为ndscheduler贡献代码](为ndscheduler贡献代码)
*[rest api](rest api)
*[web ui](web ui)
关键抽象
*[核心](https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/core):一堆可恢复组件
*[数据存储](https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/core/datastore):管理数据库连接并进行查询;可以支持postgres、mysql和sqlite。
*job:表示一个调度作业并决定如何运行一个并行作业。
*execution:presseNTS作业执行的实例。
*auditlog:记录何时和谁运行什么作业。
*[schedule manager](https://github.com/nextdoor/ndscheduler/blob/master/ndscheduler/core/scheduler_manager.py):访问数据存储以管理作业,即调度/修改/删除/暂停/恢复作业。
*[serve(https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/server):运行ScheduleManager并提供rest API和服务UI的Tornado服务器。
*[Web UI](https://github.com/nextdoor/ndscheduler/tree/master/ndscheduler/static):单页HTML应用程序;这是默认实现打开。
88%(http://localhost:8888)。
**演示**
(单击可全屏播放)
![ndscheduler demo](https://giant.gfycat.com/nastybossybeaver.gif)
如何使用pip(来自github repo)构建自己的cron替换
安装ndscheduler
#
如果您想要特定的标记版本
git+https://github.com/nextdoor/ndscheduler.git@v0.1.0\egg=ndscheduler
\nextdoor/ndscheduler.git=ndscheduler
pip install-e git+https://github.com/nextdoor/ndscheduler.git很快到pypi。)
调度程序](https://github.com/nextdoor/ndscheduler/blob/master/simple_scheduler/settings.py)。您需要指定python导入pa在运行服务器之前,在环境变量"ndscheduler\u settings\u module"中输入th。
所有可用的设置都可以在[默认设置.py](https://github.com/nextdoor/ndscheduler/blob/master/ndscheduler/default\u settings.py)文件中找到。
**服务器**
导入并运行``ndscheduler.server.server.schedulerServer`.
**作业**
每个作业都应该是一个独立的类,它是``ndscheduler.job.jobbase``的子类,并将作业的主逻辑置于``run()``函数中。
``还有"作业",你可以这样运行整个过程:
python simple_scheduler/scheduler.py
ithub.com/nextdoor/ndscheduler/tree/master/simple_scheduler)灵感目录:)
run it
xtdoor/ndscheduler/tree/master/simple_scheduler/jobs)。
*awesomejob:它只打印出您传入的2个参数。
*slackjob:它定期发送一条松弛消息,例如团队站立提醒。
*shelljob:它运行一个可执行命令,例如,运行curl对网页进行爬网。
*curljob:就像定期运行[curl](http://curl.haxx.se/)。
在setup.py中新的依赖项,您必须运行这个
make install
**运行单元测试**
**make test
**clean everything and start from scratch**
>最后,发送拉取请求。请确保[CI](https://travis-ci.org/nextdoor/ndscheduler)通过您的PR。
提供Web UI的默认实现。您可以通过覆盖这些设置来替换默认的web ui
static_dir_path=:static asset目录路径:
template_dir_path=:template目录路径:
app_index_page=:单页应用的html的文件名:
工作的数量**
![作业列表](http://i.imgur.com/dgilbkz.png)
**执行列表**
![执行列表](http://i.imgur.com/jpjzrlu.png)
**审核日志**
![审核日志](http://i.imgur.com/ehlzhhw.png)
**修改作业**
![修改作业](http://i.imgur.com/awv6xor.png)