2017-03-01 105 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次行動中,你可以承受稍微慢一些的時間。

請告訴我這是否有效,或者您做了什麼改變。謝謝。