使用缓存的退出代码退出程序

时间:2014-07-10 21:16:41

标签: python c caching

我有一个"健康检查员"程序,称为" prober"每10秒检查一次服务是否正在运行。如果探测器以返回码0退出,则健康检查员认为测试的服务正常。否则,它认为它不起作用。

我无法更改健康检查程序(我无法使用更长的间隔进行检查,或使用比生成进程并检查其退出代码更好的通信协议)。

那就是说,我不想每10秒钟真正探究一次这项服务,因为它太过分了。我只想每分钟探究一下。

我的解决方案是让探测器保持"缓存"最后一个答案有效1分钟,然后真正探测此缓存何时到期。

这看起来很好,但考虑到程序必须退出(返回退出代码),我很难想出一个合适的方法来做到这一点。到目前为止,我最好的选择是在守护进程中转换我的探测器(将缓存保存在内存中)并创建一个客户端来查询它并退出其响应,但它似乎太多工作(并处理线程,和等等。)

另一种方法是使用SQLite / memcached / redis。

还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

由于没有人真的提出任何建议,我会在这里放弃我的想法。如果你需要一个例子让我知道,我会包括一个。

最简单的方法是序列化包含系统运行状况的字典,并最后一次检查它.time()。在你的程序开头取消字典,检查时间,如果它少于你的60秒时间间隔,退出。否则检查健康状况并正常缓存(随时间)。