加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

运行Celery任务的Docker容器的HEALTHCHECK?

发布时间:2020-12-16 03:53:10 所属栏目:安全 来源:网络整理
导读:我知道检查Docker容器的运行状况的方法之一是使用命令 HEALTHCHECK CMD curl --fail http://localhost:3000/ || exit 1 但是如果工人没有这样的URL,那么如何在这种情况下检查容器的健康状况? 最佳答案 celery inspect ping命令派上用场,因为它完成了一次旅

我知道检查Docker容器的运行状况的方法之一是使用命令

HEALTHCHECK CMD curl --fail http://localhost:3000/ || exit 1

但是如果工人没有这样的URL,那么如何在这种情况下检查容器的健康状况?

最佳答案
celery inspect ping命令派上用场,因为它完成了一次旅行:它在代理上发送“ping”任务,工作人员响应并且芹菜获取响应.

假设您的应用程序名为tasks.add,您可以ping所有工作人员:

/app $celery inspect ping -A tasks.add
-> celery@aa7c21dd0e96: OK
        pong
-> celery@57615db15d80: OK
        pong

aa7c21dd0e96是Docker主机名,因此可以在$HOSTNAME中使用.

要ping单个节点,您必须运行:

celery inspect ping -A tasks.add -d celery@$HOSTNAME

这里,d代表目的地.

要添加到Dockerfile的行:

HEALTHCHECK CMD celery inspect ping -A tasks.add -d celery@$HOSTNAME

样本输出:

/app $celery inspect ping -A tasks.add -d fake_node
Error: No nodes replied within time constraint.
/app $echo $?
69

如果节点不存在或没有回复,则不健康

/app $celery inspect ping -A tasks.add -d celery@$HOSTNAME
-> celery@d39b3d31cc13: OK
        pong
/app $echo $?
0

当节点回复pong时健康.

/app $celery inspect ping -d celery@$HOSTNAME
Traceback (most recent call last):
...
    raise socket.error(last_err)
OSError: [Errno 111] Connection refused
/app $echo $?
1

当代理不可用时不健康 – 我删除了应用程序,因此它尝试连接到本地AMPQ并失败
这可能不适合您的需求,经纪人不健康,而不是工人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读