如何在Airflow中重新启动Celery Worker

时间:2017-06-26 16:35:22

标签: bash docker celery airflow flower

我目前遇到一个问题,我的Celery工作人员偶尔会冻结,需要重新启动。我有一个Airflow实例,我想使用BashOperatorSSHOperator配置并安排重新启动,但我不确定如何继续,因为它在Docker容器。

从本地主机我只是" docker重启worker",但由于Bash在气流容器内运行,我需要找到一种方法通过气流CLI或SSH从容器重新启动到主机,听起来很可怕。有没有一种优雅的方式来解决这个问题?

编辑:我看到Flower有一个REST API,我可以从中重新启动池,但我必须在我的celery配置中启用它。它看起来像airflow is setting the config,有没有办法覆盖它?

1 个答案:

答案 0 :(得分:0)

好的,这就是我最终做的事情:

int index=list.size() - 1;
while (index >= 0){
    if(list.get(index).equals(z)){
        return index;
    }
    index--;
}
return -1;

没有真正阻止我的任务挂起,但它是:)。