我有一個擺動桌面應用程序,安裝在局域網內的許多桌面上。我有一個mysql數據庫,他們都談到。在每天下午5點,每個應用程序都會有一個線程喚醒,並嘗試將文件備份到遠程服務器。我想阻止所有的桌面應用程序做同樣的事情。防止多個用戶執行相同的操作
的方式我想這樣做是:
下午5點醒來後,所有的應用程序將嘗試寫一行到一個MySQL表。他們會寫相同的信息。只有1個會成功,其他人會得到重複的行異常。誰成功,然後繼續運行備份程序。
我的問題是:
是做事的這個正確的方式?有沒有更好的(更簡單)的方法? 我知道我們也可以使用套接字來做到這一點。但我不想走這條路線...太多的編碼也需要確保所有的系統都可以先互相交談(ping)
mysql會支持諸如功能。我的數據庫是INNO DB。所以我認爲它確實如此。通常,我將在局域網中有大約20-30個用戶。這會導致數據庫處理的巨大開銷。
爲什麼不使用未安裝在桌面上的專用備份系統? – Gandalf
只有一個客戶端應該做備份?你想備份存儲在桌面上的數據或存儲在服務器上的數據嗎? – Puce
@甘道夫 - 這實際上很難做到。它是我們最初想到的一個好主意,但在備份過程中有一些用戶參與。如果專用用戶不啓動應用程序,則不能進行備份。 – sethu