把 celery 进程部署在 k8s 的时候如何做健康检查?
一般的 fastapi、flask 可以使用 HTTP 访问判断是不是健康,但是 celery 没有这样的接口
把 celery 进程部署在 k8s 的时候如何做健康检查?
一般的 fastapi、flask 可以使用 HTTP 访问判断是不是健康,但是 celery 没有这样的接口
celery 进程可以通过以下方式进行健康检查:
ping
方法检查 AMQP 连接是否正常:from celery import Celery
app = Celery('myapp', broker='pyamqp://guest@localhost//')
app.ping() # 如果连接正常,将返回 True
from celery import Celery
app = Celery('myapp', broker='pyamqp://guest@localhost//')
try:
app.send_task('tasks.add', args=[4, 4])
except Exception as e:
# 处理异常,例如记录日志或重新连接
print(f"Error occurred: {e}")
在 Kubernetes 中进行 Celery 进程健康检查的方法如下:
CMD [ "python", "-c", "import celery; celery.ping()" ]
apiVersion: v1
kind: Pod
metadata:
name: my-celery-pod
spec:
containers:
- name: my-celery-container
image: my-celery-image
ports:
- containerPort: 5672 # AMQP 端口号
livenessProbe:
httpGet:
path: /health # 健康检查路径,可以自定义为其他路径
port: 8000 # 健康检查端口号,可以根据实际情况调整
initialDelaySeconds: 10 # 延迟时间,可以根据实际情况调整
periodSeconds: 5 # 检查间隔时间,可以根据实际情况调整
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.9k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决