我想到的ping服务允许用户轻松跟踪他们的云应用程序(AWS,GCP,Digital Ocean等)。
我遇到问题的应用程序设计的一部分是如何有效地从数据库中读取一个不断增长/缩小的主机名列表,并对每个主机名进行ping操作" x"间隔。服务本身将用Python和Postgres编写,以存储用户输入的主机名。请记住,ping的主机名列表是可变的,因为用户可以随意添加和删除主机名。
您如何设置一个系统来检查最新的主机名列表,在所述主机名列表中执行ping操作,并以特定间隔存储结果?
我对编程很陌生。任何有关正确方向的帮助或指示都将不胜感激
答案 0 :(得分:0)
让我这样说吧。您将通过以下方式获得这4个语句。最简单的方法是,您可以保留用户的表格和主机名的表格,其中包含以下列 - > fk到用户,主机名,最后更新和布尔is_running。
您需要执行以下操作。
<强>更新强> 您将在整个表格上定期运行此操作。您可以通过在上次更新列上使用带过滤器的选项来优化此项。
插入和删除: 这适用于用户添加或删除主机名的情况。在插入期间,还要ping主机名并将上次更新列更新为当前时间。
对于上述3个操作,无论何时运行,他们都会在相应的行上使用锁定。在后两个操作中的每个操作之后,您都可以通知用户。
最后 READ : 这是用户想要查看其主机名的状态。如果他最近添加或删除了主机名,则只有在提交后才会通知他。 否则,在user.id = x的主机名中执行select *并将结果发送给他。每次他点击刷新你都可以运行这个查询。
您还可以在两个表上放置索引,因为读取操作必须是最快的。在其他2个操作中你可以承受稍慢的时间。
请告诉我这是否有效或者您是否做了不同的事情。谢谢。