我心目中的ping服务允许用户轻松跟踪他们的云应用程序(AWS、GCP、Digital Ocean等)正常运行时间。
应用程序设计中我遇到麻烦的部分是如何有效地从数据库中读取不断增长/缩小的主机名列表,并在每隔"x“间隔对它们执行ping操作。服务本身将使用Python和Postgres编写,以存储用户输入的主机名。请记住,要ping的主机名列表是可变的,因为用户可以随意添加和删除主机名。
如何设置一个系统来检查最新的主机名列表,在所述主机名列表中执行ping,并以特定的时间间隔存储结果?
我是编程新手。任何正确方向的帮助或指示都将不胜感激。
发布于 2017-03-01 15:37:55
让我这样说吧。您将通过以下方式获得这4条语句。以最简单的方式,您可以保存一个用户表和一个主机名表,该表将具有以下列:-> fk to users、hostname、last update和boolean is_running。
您需要执行以下操作。
UPDATE:您将在整个表上定期运行此命令。您可以通过在last update列上使用select和过滤器来优化这一点。
INSERT和DELETE:这是在用户添加或删除主机名时使用的。在插入期间,还要ping主机名并将的上次更新列更新为当前时间。
对于上述3个操作,无论它们何时运行,都将在各自的行上使用一个锁。在完成后两个操作之后,您可以通知用户。
最后,读取:每当用户想要查看其主机名的状态时。如果他最近添加或删除了主机名,则只有在提交后才会通知他。否则,执行select * from hostnames where user.id =x并将结果发送给他。每次他点击刷新时,你都可以运行这个查询。
您还可以将索引放在这两个表上,因为读操作必须是最快的。在其他两个操作上,您可以承受稍微慢一点的时间。
一定要让我知道这是否有效,或者你是否采取了不同的做法。谢谢。
https://stackoverflow.com/questions/42524336
复制相似问题