Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌应用引擎持久全局_Python_Database_Google App Engine_Global - Fatal编程技术网

Python 谷歌应用引擎持久全局

Python 谷歌应用引擎持久全局,python,database,google-app-engine,global,Python,Database,Google App Engine,Global,我正在寻找一种方法来保持appengine(python)中持久全局变量的等效性。我所做的是创建一个全局类,我初始化一次(即在测试时重置所有数据库对象)。我有一些东西在里面,比如全局计数器,或者分配我创建的某些种类的下一个id 这是一种体面的方式来做这类事情,还是通常会使用另一种方法?数据存储是唯一可以保证持久数据也可修改的地方。因此,根据所需的访问模式,您可以拥有一个大型对象,也可以拥有几个较小的对象(具有name属性和其他属性),但必须在数据存储中生存。您可以使用memcache来加快缓存速

我正在寻找一种方法来保持appengine(python)中持久全局变量的等效性。我所做的是创建一个全局类,我初始化一次(即在测试时重置所有数据库对象)。我有一些东西在里面,比如全局计数器,或者分配我创建的某些种类的下一个id


这是一种体面的方式来做这类事情,还是通常会使用另一种方法?

数据存储是唯一可以保证持久数据也可修改的地方。因此,根据所需的访问模式,您可以拥有一个大型对象,也可以拥有几个较小的对象(具有name属性和其他属性),但必须在数据存储中生存。您可以使用
memcache
来加快缓存速度,这通常会在查询中持久化,但任何memcache条目都可能随时消失,因此您始终需要数据存储支持它(特别是,任何更改都必须转到数据存储,而不仅仅是memcache).

数据存储是唯一可以保证持久数据也可修改的地方。因此,根据所需的访问模式,您可以拥有一个大型对象,也可以拥有几个较小的对象(具有name属性和其他属性),但必须在数据存储中生存。您可以使用
memcache
来加快缓存速度,这通常会在查询中持久化,但任何memcache条目都可能随时消失,因此您始终需要数据存储支持它(特别是,任何更改都必须转到数据存储,而不仅仅是memcache).

您可以使用一个表来存储您需要的每个全局变量的键值对吗?是否真的需要“分配我创建的某些类型的下一个id”?如果在同一时刻创建了两个实例,会发生什么情况?是否会与共享相同id的两个实体发生冲突?您可以使用数据存储对象自己的id:object.key().id()您可以使用一个表来存储您需要的每个全局变量的键值对吗?是否确实需要“分配我创建的某些类型的下一个id”?如果在同一时刻创建了两个实例,会发生什么情况?是否会与共享相同id的两个实体发生冲突?您可以使用数据存储对象自己的id:object.key().id()好的,很好的响应。这听起来像是在需要时创建一个实例和访问的方法(除非我错误地理解了响应)。谢谢@Joey,除非您需要在访问中更具选择性,否则单实例方法是可行的(当然,如果两个不同的查询可以同时修改实例,请小心:任何修改都需要重新读取、更改和存储的事务,否则更改可能会相互践踏)。好的,回答很好。这听起来像是在需要时创建一个实例和访问的方法(除非我错误地理解了响应)。谢谢@Joey,除非您需要在访问中更具选择性,否则单实例方法是可行的(当然,如果两个不同的查询可以同时修改实例,请小心:任何修改都需要重新读取、更改和存储的事务,否则更改可能会相互影响)。