当LocalExecutor与MySQL后端一起使用时,airflow scheduler在我的Centos 6盒子上运行会创建33个调度程序进程,例如,
deploy 55362 13.5 1.8 574224 73272 ? Sl 18:59 7:42 /usr/local/bin/python2.7 /usr/local/bin/airflow scheduler
deploy 55372 0.0 1.5 567928 60552 ? Sl 18:59 0:00 /usr/local/bin/python2.7 /usr/local/bin/airflow scheduler
deploy 55373 0.0 1.5 567928 60540 ? Sl 18:59 0:00 /usr/local/bin/python2.7 /usr/local/bin/airflow scheduler
...
这些进程与Executor进程和gunicorn主进程和工作进程不同.使用SequentialExecutor (sqlite后端)运行它只需启动一个调度程序进程.
气流仍然有效(DAG正在运行),但这些过程的绝对数量让我觉得有些不对劲.
当我select * from job where state = 'running';在数据库中运行时,只SchedulerJob返回5 行.这是正常的吗?
我的理解是对Ruby对象的方法调用正在向对象发送消息(可以使用该send方法手动完成).
当我使用Python时,我没有考虑如何处理方法/函数调用; 如果它被定义或可用则执行,否则我会收到错误.
1)Ruby对消息的使用是唯一的(即Python是否也使用了引擎盖下的消息)?
2)Ruby对消息的使用只是一个实现细节,还是你应该如何使用Ruby的基础(即如果我忽略它并继续像Python一样调用我的方法,我会错过什么)?