的documentation for GAE's Task Queue API狀態:任務隊列,冪等,和物化交易
你可以排隊一個任務作爲數據存儲區事務的一部分,使得任務只排隊,並保證被排隊,如果交易承諾成功。
然而,documentation for datastore transactions美國的兩倍,我們應該讓他們冪等只要有可能,並提交給任務隊列不冪等。 documentation for objectify更進一步,在其交易中解釋了work MUST be idempotent
。
那麼,有沒有處理結合這些建議/要求的標準方式,或者我應該推出自己的技術(可能使用類似this)?
我不確定你在哪裏發現這裏的矛盾。如果你在一個事務中,那麼這個任務是事務性的添加的,所以如果事務失敗,任務不會被排隊。 –
@DanielRoseman原因交易建議/要求是冪等都是這樣的情況:交易拋出一個'DatastoreFailureException',但隨後反正成功,所以任務排隊。 Objectify重試交易,並且它再次成功。現在你的任務已經排隊兩次了,因爲排隊任務不是冪等的。 –