有一个使用python gunicorn构建的简单REST API服务器,该服务器运行多个线程来接受请求。运行一段时间后,其中一些线程崩溃。有一个脚本来检测死线程的数量(使用日志文件)。一旦这个数字超过某个阈值,我们想重新启动gunicorn。该脚本被配置为用作liveness probe。
脚本运行正常,并按预期方式重新启动Pod。但是有一些实时线程仍在处理请求。另外,由于其他请求正在处理中,所以gunicorn保留了尚未处理的已接受请求的积压队列。有没有一种方法可以指定Pod重新启动的延迟,以便其他正在运行的线程和积压请求有一些时间来完成处理?
答案 0 :(得分:3)
答案 1 :(得分:1)
您可以使用terminationGracePeriodSeconds
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: test
spec:
replicas: 1
template:
spec:
containers:
- name: test
image: ...
terminationGracePeriodSeconds: 60