2017-03-01 97 views
1

我想到的ping服务允许用户轻松地跟踪他们的云应用程序(AWS,GCP,Digital Ocean等)运行时间。设计ping服务

我遇到麻烦的应用程序设计的一部分是如何从数据库中有效地读取主机名称的增长/缩小列表,并且每隔“x”时间间隔查看它们。服务本身将用Python和Postgres编写来存储用户输入的主机名。请记住,要ping的主机名列表是可变的,因为用户可以随意添加并删除主机名。

你会如何设置跨主机名的名单说,检查主机名的最先进的最新列表,执行ping命令,并将结果保存在一个特定的时间间隔的系统?

我很新的编程。任何帮助或指针在正确的方向将不胜感激

回答

0

让我这样说吧。你将通过以下方式获得这4个陈述。以最简单的方式,您可以保留用户的表格和主机名称的表格,它们将具有以下列 - > fk给用户,主机名,上次更新和布尔is_running。

您将需要执行以下操作。

UPDATE: 您将在整个表格上定期运行此功能。您可以通过在上次更新列中使用带有筛选器的选择来优化此操作。

INSERTDELETE: 这是当用户添加或删除主机名对。在插入过程中,还会ping主机名并将当前时间更新上一次更新列。

对于上面的3个操作,每当他们运行时,他们会在相应的行上使用锁。在后面两个操作之后,你可以通知用户。

最后阅读: 这是每当用户想看到他的主机名的状态。如果他最近添加或删除了一个主机名,他只会在提交后才会收到通知。 否则做一个选择*从hostnames where user.id = x并发送结果给他。每次他点击刷新,你都可以运行这个查询。

您也可以在两个表上放置索引,因为读取操作必须是最快的。在其他2次行动中,你可以承受稍微慢一些的时间。

请告诉我这是否有效,或者您做了什么改变。谢谢。