我正在工作的地方是試圖建立一些基本規則,我們現在正在進行的辯論是本地庫與Web服務的代碼重用。 Web服務似乎是大多數公司的流行選擇,這也是大多數開發人員傾向於採用的方式。如果您無法使用交易,您如何有效地在企業環境中使用Web服務?
我只是看不出如何有效地使用Web服務進行任何認真的工作。如果我無法使用交易,如何安全地執行多個服務呼叫?
比方說,我有一項cron工作,可以從我們的數據庫中抓住符合特定條件需要收到通知的客戶。他們會發送一封傳真,一封電子郵件,並且會創建一張票據以在內部跟蹤此問題。這是在for
循環中針對每個客戶會發生的3種不同的服務呼叫。
如果沒有什麼地方發生了錯誤,它可能是,例如,一個傳真和電子郵件發送給客戶,但不是會創建一票。或者更糟糕的是,這個cron工作可能會包含一個錯誤,導致它每次都在同一時間失敗,並重復給同一個客戶發送電子郵件。如果圖書館都是本地的,那麼所有東西都可以被包裝在一個交易中,而這些都不會發生。但是在這個例子中我們使用了Web服務。
請注意,電子郵件和傳真方法實際上將數據插入到電子郵件隊列和傳真隊列中,然後使用cron作業處理該隊列和傳真隊列。因此,對「發送電子郵件」和「發送傳真」服務方法的調用可以安全回滾。
的選擇是把這個代碼整個塊在Web服務本身,所以Web服務本身將調用電子郵件,傳真和傳票生成的交易方式。但是,我們正在創建一個Web服務方法,只是爲了使用事務;除了這個cron腳本之外,沒有任何真正需要從任何地方調用此方法的正當理由。
您通常會如何處理這種方法?
我更新了有關電子郵件和傳真兩次的帖子。電子郵件和傳真方式實際上將數據插入到電子郵件和傳真隊列中,由他們自己的cron作業處理。 – ryeguy 2012-02-14 00:25:44