appengine中的批处理servlet请求

时间:2012-10-04 03:05:49

标签: google-app-engine

是否可以合并一段时间内收到的所有请求(例如1秒)并批量投放。

基本上,我正在寻找一种处理“http servlet请求响应”映射列表的方法,而不是分别为每个req-resp对提供服务。我希望,HttpServletReqRespMapList抽象可以共享共同状态,它在appengine环境中很有用。

请分享,任何想法或已知实施,这是在Google appengine环境中实现此目标的理想方式。

2 个答案:

答案 0 :(得分:2)

我认为您希望使用此类映射实现一些缓存并降低成本。如果ti是真的,你应该看其他方法。

  1. 您可以使用DataStore甚至MemCache根据请求参数缓存预处理数据。
  2. 您可以尝试使用作为WAR文件一部分上传的静态文件。静态文件不需要任何CPU时间,因此它是降低成本的最佳方法。
  3. 批处理对于Java Web应用程序来说并不自然。通常问题可以用另一种方式解决。

    如果您需要请求之间的共同状态,则问题变得更加复杂。 AppEngine架构基于按需实例概念。因此,您没有任何担保,哪个实例将处理您的请求。这意味着您无法共享静态数据。因此,只能使用DataStore / MemCache等某些持久性存储甚至某些FileService来共享状态。但是在使用它时要小心,因为你必须考虑每种技术的延迟。

    我看到的这种架构的最后一个原因是您需要根据收到的请求实施一些工作流程。如果您需要一些工作流,您应该查看http://code.google.com/p/appengine-pipeline/,它允许对Task API进行执行流程控制。

答案 1 :(得分:1)

不,它不是,并且servlet标准在任何情况下都不提供任何机制。

你为什么要这样做?