2013-08-28 17 views

回答

2

您可以對Queue.add方法的以下變體使用空的事務參數。

add(Transaction txn, TaskOptions taskOptions) 

這在Queue interface documentation的頂部解釋。它會使任務獨立於活動事務的成功或失敗。

但是,即使事務失敗,如果您真的不關心排隊任務,您可以在事務內的列表中創建TaskOptions對象,然後在事務完成後將其排入一個調用中。這樣,您不會產生在事務內添加到隊列中的延遲成本。

+0

不錯,我看到有可能傳遞null,但錯過了頂部的文檔,說明會做什麼。 –

0

一種選擇是:

  1. 追加到事務中的單個任務數據有效載荷。每個額外的數據塊都適合自己的任務。
  2. 就在事務提交之前將您的聚合任務負載排入一個任務。
  3. 執行一個事務性任務。它將數據有效載荷分解成單獨的新任務,併入隊。
  4. 執行每個排隊任務。

合適嗎? (您需要驗證事務任務本身是否可以排隊非事務性任務。)

+0

這是一種解決方法 - 我很確定應該有辦法實際執行我想要的操作。 –