更新ListProperty时是否可以在App Engine中具有竞争条件?

kol*_*vra 3 python concurrency google-app-engine

假设我有一个User具有bands类型属性的模型StringListProperty.在请求处理程序中,我正在扩展/追加到bands列表,并且我正在创建许多任务taskqueue,其处理程序也将附加到bands列表中.是否有竞争条件?

pro*_*ppy 6

您可以使用Transaction中的Tasks来确保只有在成功提交相应的数据存储区事务时才会将您的任务排入队列.

只需transactional=True在事务中添加任务时添加关键字arg:

taskqueue.add(url='/path/to/my/worker', transactional=True)
Run Code Online (Sandbox Code Playgroud)