2016-04-30 111 views
0

我們正在構建一個呼叫管理軟件,允許不同的人分配給他們的呼叫,他們可以在手機上編輯,然後關閉手機的呼叫,同步回服務器以供中央管理員監視。對於線性數據流,即在服務器上創建的呼叫>發送到移動設備>在移動設備上更新>發送回服務器,我們已經能夠建立數據流並且一切正常。客戶端(android)和服務器之間的同步數據庫(rails PostgreSQL)

我被困在可能出現在這個工作流程中的複雜度的下一個層次上,即如果在創建通話併發送到移動設備之後,如果它在服務器上得到更新,那麼如何將此更改與移動設備同步,請記住,由於呼叫尚未關閉,移動設備上可能還有一些尚未同步的更改。目前沒有自動同步,移動用戶必須按下一個按鈕,該按鈕指示在呼叫關閉時將數據發送回服務器的操作,這是我們希望作爲工作流程的一部分。與此同時,我們希望在數據同步和更新方面發生一些自動化,直到通話結束。

我可以拿出來的類比是使用git和代碼版本控制(拉動之前拉動),但是可能會發生必須手動解決的合併衝突。

欣賞對此問題的任何見解。

ps:在android和PostgreSQL(ruby on rails)上使用移動aping數據結構從服務器存儲服務器記錄的相應ids的記錄來調用REST API來更新服務器上的數據。

回答

0

因此,我們設法編寫了很多自定義API來處理服務器和客戶端之間的所有數據交換。我們想出了一個自定義的衝突解決方案,它描述了所有可以從移動設備編輯的數據字​​段的更高優先級,所以每次數據同步到移動設備時,優先級更高的數據被保存(即如果移動設備改變了那些字段,那麼這些值是即使服務器也改變了數據)。 另外,我們在編輯移動設備中的數據之前,先從服務器獲取數據,以確保始終獲得最新的數據。 這符合我們試圖實現的業務邏輯,因此不能概括這一點。

相關問題