我有一个 python 数据加载服务。该服务中的步骤之一是刷新多个 Oracle 物化视图。我们注意到该服务经常卡在这一步,并且在重新启动(pod)后问题得到解决。我想在这里配置一个基于命令的 openshift liveness probe。目的是检测服务是否在此步骤停留超过 x 小时,如果是,则探测失败并重新启动 Pod。该服务没有 http 访问权限。
我们在这里运行的脚本中使用了大量的日志记录。有没有办法轮询 openshift 部署日志(最新的)并查找某些消息。
例子:
#msg1
print("Refreshing materialized views")
.
.
.
#msg2
print("materialized view refreshed")
msg1 标志着潜在问题步骤的开始。我打算编写一个轮询日志并查找 msg2 的命令(因为它标志着完成,退出状态为 0),如果超过 5 小时没有找到 msg2,它必须返回非零退出状态,导致探测失败。
我该如何实施?这是最好的方法吗?