Google App Engine是否支持通过python进行多重处理,并且数据库是否支持在本地主机中进行多次写入?

时间:2018-08-06 13:03:21

标签: google-app-engine multiprocessing google-cloud-datastore

关于生产环境,我想知道Google App Engine上的python标准环境(2.7)是否支持带有多处理和池化的代码?使用Google的数据存储区。还是应该改用Map Reduce?

关于本地主机中的开发环境,我也想知道,当从不同的shell终端启动的进程写入同一数据库时,如何避免数据库锁定?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以查看this post on Google Groups,确认在Google App Engine(GAE)标准环境中无法进行多处理,但是您可以在GAE Flexible.中进行实施this post about parallel execution in GAE中的内容,特别是Tasklet和Cloud Datastore示例。

答案 1 :(得分:0)

关于数据库锁定:

更新实际上是在数据存储事务中完成的,默认情况下,NDB将在完全失败之前重试该操作3次。建议您最多一次每秒更新一个实体组。如果您看到数据库锁,则可能是您做错了什么。我们实现了Brett Slatkin在2010年数据管道讨论中描述的“叉加入队列”版本,该方法是“将”许多更新“加入”同一实体的方法,以便可以受控的速率一次应用所有更新。 :https://www.youtube.com/watch?v=zSDC_TU7rtc&feature=youtu.be&t=33m37s

另请参阅此处的讨论: How to deal with eventual consistency in fork-join-queue