我正在尝试在两个GAE应用之间共享一个对象。第一个将具有类的文件,并将提供该对象的实例。第二个,使用给定的URL,将访问第一个应用程序,获取对象,然后使用是。这有可能吗?如果是这样,我在下面的代码中做得不好?
作为一个小旁注,我尝试了一个带有pickle的解决方案,但是这两个应用程序都需要在其名称空间中使用该类,但我将使用其中的一些。我想通过使用继承来尝试模仿Java的抽象类,但这没有用。如果你想看到它,我也可以提供该代码。
我理解可能的服务条款,这不是问题。
我知道云计算在那里,我不知道如何使用它,我愿意 我更愿意避免成本,因为我正在将其作为一个类项目开发。
我已经看到了一些使用remote_api的建议,但我没有看到好的例子 它是如何使用的,更不用说允许两个应用程序进行交互了。
我已经看到了使用多个版本的解决方案,但每个学生都会有 一个应用程序,它将是非常混乱,但可能是可行的。
First.Py:
class SampleCritter():
def move():
...
class Access(webapp2.RequestHandler):
def post(self):
CritStore(stats=self.request.body).put()
def get(self):
creature = CritStore.all().order('-date').get()
if creature:
stats = loads(creature.stats)
return SampleCritter(stats)
else:
return SampleCritter()
Second.py:
class Out(webapp2.RequestHandler):
def post(self):
url = self.request.POST['url']
critter = urllib2.urlopen(url)
critter.move()
答案 0 :(得分:1)
简短的回答是,您无法在应用之间共享对象。
答案越长,您的第一个应用就可以使用基于HTTP的API公开对象。任何客户端都可以访问HTTP API,包括app 2。
App 2必须通过HTTP API操纵对象。您将无法从应用2中调用critter.move()
,但如果您创建了一个处理程序,例如critter\move
,则可以让处理程序启动相应的Critter实例并在其上调用move()。您还必须通过HTTP POST传递所有相应的参数。