0

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

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

编辑:我看到 Flower 有一个 REST API,我可以从中重新启动池,但我必须在我的 celery 配置中启用它。看起来气流已经在设置配置,有没有办法覆盖它?

4

1 回答 1

0

好的,这就是我最终要做的:

t1 = BashOperator(
    task_id="celery_restart",
    bash_command="celery multi restart 1",
    dag=dag
)

并没有真正阻止我的任务挂起,但它就在那里:)。

于 2017-06-27T12:45:12.133 回答