2015-11-28 51 views
2

我一直在研究用作核心銀行項目一部分的交易服務。在許多服務中,在我的數據庫中插入任何記錄之前,我應該對記錄運行多次驗證。編輯數據庫中已存在的記錄也是如此。 但有時爲了更新指定表中的記錄,我們應該更改與指定表相關的其他表中的記錄。因此,我們需要用戶確認來更改其他表中的記錄。但問題是我不知道如何在服務器中運行事務時如何在客戶端中獲得用戶確認。是否可以通過rabbitMq在客戶端和服務器之間發送消息來解決這個問題? 如果任何人使用清晰的樣本解釋任何解決方案,我將不勝感激。如何在交易中獲得用戶確認?

回答

1

當我需要實現這個時,我會以其他方式來做(我不知道這是否適用於您的場景)。

  • 我會首先讓用戶輸入自己的數據,
  • 話,我會做一個嘗試運行和檢查需要哪些額外的確認,我還要保存(在用戶會話)被確定,而所有相關的約束嘗試運行
  • 然後我會詢問用戶在嘗試運行時確定的額外確認,然後我將執行實際運行,並使用保存的約束檢查保存沒有相關的任何更改。
  • (如果檢測試戴和實際梯級之間的數據相關的變化,我會道歉,並與第2步重新開始的過程)

但如果這僅適用於不具備這樣很多「同時變化」

+0

親愛的@Ralph,先謝謝你回答我的問題。雖然您提出的解決方案是解決此問題的一種方法,但我自己認爲應該有另一種方式來以更合適的方式解決我的問題。我不確定,但我認爲最好使用RabbitMQ或其他消息代理系統來實現這樣的事件處理程序。 – moha

+0

@moha:當然是其他的解決方案,它取決於你的用例哪一個最適合你。但請記住其他解決方案對您的交易意味着什麼。所以如果你開始一個交易,然後詢問用戶一些輸入(在關閉交易之前),這意味着你的數據庫中的某些內容可能需要很長時間。 - 再次取決於你的用例如果這是一個問題 – Ralph

+0

我認爲你是正確的交易。我曾想過你說過什麼,我想也許我完全錯了,應該改變我的分析。現在,如果我改變主意並在驗證後啓動交易,我可以推遲交易。我的意思是,我可以先對更新的記錄進行驗證,如果我需要用戶的任何確認,我可以在開始任何交易之前得到它。現在,你有什麼建議?在服務器中進行一些驗證之後,是否有任何框架可以從客戶端獲得確認? – moha

相關問題