调度工具
python_tty
努力成为python大牛
展开
-
airflow 使用踩坑
定时任务不执行 如果代码没有问题,有可能是dag文件中的开始时间参数设置的不对。如果开始时间设置的是对的话,定时任务会自动执行。ariflow scheduler -D scheduler有可能启动不了,把airflow-scheduler.pid文件删掉...原创 2018-05-29 10:08:21 · 5444 阅读 · 4 评论 -
airflow源码分析-启动机制
airflow是一个集定时任务和监控为一体的平台,它通过运行dag来创建定时任务,功能强大,开发简单。 用过airflow的人都知道,airflow webserver -p 8000 这样webserver就启动起来了 airflow scheduler 启动scheduler,具体是怎么启动起来的呢?看一下代码就知道了 setup.pydef do_setup(): ...原创 2018-03-16 18:48:42 · 4214 阅读 · 1 评论 -
airflow源码分析之BashOperator
BashOperator主要的功能是执行shell命令或者shell脚本。负责具体的执行过程的是BashOperator.execute()函数。 airflow的bash_operator.py文件:from builtins import bytesimport osimport signalfrom subprocess import Popen, STDOUT, PIPEfrom原创 2017-12-16 16:21:57 · 4692 阅读 · 0 评论 -
airflow之DAGs详解
airflow是一个描述,执行,监控工作流的平台。airflow自带了一些dags,当你启动airflow之后,就可以在网页端看到这些dags,我们也可以自己定以dag。1.什么是DAGs DAG是一个有向无环图,它是一个task的集合,并且定义了这些task之间的执行顺序和依赖关系。比如,一个DAG包含A,B,C,D四个任务,A先执行,只有A运行成功后B才能执行,C只有在A,原创 2017-12-15 16:46:15 · 12796 阅读 · 4 评论 -
源码安装airflow
1.创建虚环境 virtualenv airflow source ~/airflow/bin/activate export AIRFLOW_HOME = ~/airflow 2.下载源码 airflow: https://github.com/apache/incubator-airflow git clone git@github.com:apache/inc原创 2017-12-15 09:50:50 · 2527 阅读 · 0 评论 -
airflow的安装和配置
安装 virtualenv airflow export AIRFLOW_HOME=~/airflow source airflow/bin/activate pip install airflow 这个过程时间有点长,airflow安装了很多依赖包,数据库同步工具alembic, orm工具sqlalchemy, flask等 2.初始化数据库 airflow默认的数据库是sql原创 2017-12-14 10:22:46 · 3311 阅读 · 0 评论 -
kill -9杀死正在运行任务的woker之后,定时任务不运行
当celery有正在执行的任务时,使用kill -9命令杀死celery的woker之后,任务不再运行。原因是官方文档里celery woker safely stop:Can I safely shut down the worker?Also make sure you kill the main worker process only, not any of its child pr...原创 2018-09-10 19:09:38 · 1448 阅读 · 0 评论 -
celery定时任务拆分
业务需求要运行一些定时任务,这些定时任务基本步骤都一样,只是具体的步骤的操作不一样。这些定时任务都包含3部分,数据采集,数据校验,然后就是告警。用celery来实现定时任务。开始的时候是把3个步骤写在同一个定时任务里, 后来发现celery有work-flow功能,就想把这个改成3个小的任务,看了文档,发现work-flow 这个功能只针对立即运行的任务,定时任务没发用...原创 2018-08-08 17:20:34 · 560 阅读 · 2 评论 -
celery定时任务踩坑
新添加定时任务之后,需要重启一下celery的beat和work, 新增的任务才能生效。目前celery没有提供动态添加定时任务的接口celery 添加定时任务有2中途径,一种是在项目的配置文件中,一种是在模块的task.py文件中。这两种方式都需要显示的添加定时任务。如果想用信号触发自动添加定时任务,定时任务添加不成功 task.pydef get_tasks(): tas...原创 2018-08-07 16:05:37 · 6837 阅读 · 6 评论