两个AppEngine应用程序如何相互通信?

时间:2012-04-24 13:22:42

标签: google-app-engine

我尝试在Google App Engine中构建应用程序,但我有一些问题,不知道如何解决它。

我尝试构建两个应用程序,一个是从用户获取一个String,另一个是像分频或加密一样处理字符串。

我的问题是如何在Google App Engine中的两个应用程序之间传输字符串?我可以构建一个应用程序来处理String,不要呈现WEB页面。

任何人都可以给我一些提示吗?非常感谢。

2 个答案:

答案 0 :(得分:4)

两个AppEngine应用程序相互通信的唯一方法是通过普通的HTTP请求/响应模型。对于您的情况,我们会有App A,它会回复用户的请求,该用户提供要处理的字符串。应用程序B将接收来自应用程序A的请求,该请求将传递要处理的字符串。

  1. App A 处理网址/providestring?string=...,其中...是任意值
  2. App B 处理网址/processstring?string=...,其中...是任意值
  3. 用户使用浏览或编写调用/providestring的应用程序
  4. App A&#39> 网址处理代码运行并提取string参数的值
  5. 应用A 使用URLFetch致电应用B&#39> /processstring
  6. App B&#39> 网址处理代码运行并提取string参数的值,并执行任何类型的处理和 向呼叫者发送某种响应。

答案 1 :(得分:0)

执行此操作的一种方法是拥有共享数据库。 App A会吸收用户数据并将其保存到数据库中。应用B将提取用户数据并进行处理。

接受的功能请求适用于多个App Engine应用程序共享数据存储访问[1]。

多个App Engine应用程序可以共享对Google Cloud SQL实例的访问权限[2]。

To grant access to your App Engine application:

From the Google Cloud SQL pane of the APIs Console, find the instance that you 
want to grant access to and click the on the name of your instance.
Click on the Instance settings button on the instance's dashboard.
On the Instance settings window that appears, enter your Google App Engine
application ID under the Authorized applications section. You can grant access to
multiple applications, by entering them one at a time.

注意:您可以使用数据存储区使用一个应用来实现此目的。以下是几种可接受的模式:

  1. RequestHandler接收用户数据,对任务进行排队以处理数据并保存。
  2. RequestHandler接收用户数据&保存它。 cron作业会提取该类型的所有最新模型,处理它们并保存已处理的数据。
  3. [1] https://code.google.com/p/googleappengine/issues/detail?id=1300

    [2] https://developers.google.com/cloud-sql/docs/before_you_begin#configure_access_control