3
比方說,我有一個型號User
,其型號爲StringListProperty
,屬性bands
。在請求處理程序中,我正在擴展/追加到bands
列表,並且還爲taskqueue
創建了大量任務,其處理程序也將附加到bands
列表中。是否有可能存在競爭條件?更新ListProperty時可能在App Engine上有競爭條件嗎?
比方說,我有一個型號User
,其型號爲StringListProperty
,屬性bands
。在請求處理程序中,我正在擴展/追加到bands
列表,並且還爲taskqueue
創建了大量任務,其處理程序也將附加到bands
列表中。是否有可能存在競爭條件?更新ListProperty時可能在App Engine上有競爭條件嗎?
如果已成功提交相應的數據存儲區事務,則可以使用Tasks within Transaction確保您的任務僅被排隊。
taskqueue.add(url='/path/to/my/worker', transactional=True)
你節省'User'到數據存儲,然後閱讀它在任務隊列:
一個事務中添加任務時,只需添加
transactional=True
關鍵字ARG? –是的,這是可能的。您需要讀取/修改/寫入交易中的實體。 – dragonx