GVKun编程网logo

Google App Engine中的进度栏(谷歌进度条)

16

本文将带您了解关于GoogleAppEngine中的进度栏的新内容,同时我们还将为您解释谷歌进度条的相关知识,另外,我们还将为您提供关于GoogleAppEngine和GoogleComputeEng

本文将带您了解关于Google App Engine中的进度栏的新内容,同时我们还将为您解释谷歌进度条的相关知识,另外,我们还将为您提供关于Google App Engine 和 Google Compute Engine 有什么区别?、Google App Engine中的全局异常处理、Google App Engine中的竞争问题、Google App Engine中的自定义身份验证的实用信息。

本文目录一览:

Google App Engine中的进度栏(谷歌进度条)

Google App Engine中的进度栏(谷歌进度条)

我有一个Google App
Engine应用程序,该应用程序执行约30-50次对远程API的调用。每次通话大约需要一秒钟,因此整个操作可能需要一分钟。当前,我在站点的post()函数内部循环执行此操作,因此直到整个操作完成后才显示响应。不用说,该应用程序目前还不太实用。

我想做的是在操作开始后立即打印响应,然后在每个API调用完成后对其进行更新。我将如何实现?在桌面应用程序上,我将启动一个工作线程,该线程会定期更新前端。Google
App Engine中有类似的机制吗?

我在Google搜索“进度栏”和“
Google应用程序引擎”,但是大多数结果来自希望监视文件上传进度的人。我的情况有所不同:耗时的任务正在服务器上执行,因此客户端无法监视其进度。
这个人是我能找到的最接近的人,但是他使用Java。

答案1

小编典典
  1. 使用http://code.google.com/appengine/docs/python/taskqueue将发布逻辑发送到任务
  2. 更改流程的逻辑以设置状态(可能使用了内存缓存)
  3. 每隔10秒或多或少使用AJAX查询内存缓存状态,这取决于您

Google App Engine 和 Google Compute Engine 有什么区别?

Google App Engine 和 Google Compute Engine 有什么区别?

我想知道 App Engine 和 Compute Engine 之间的区别是什么。任何人都可以向我解释其中的区别吗?

答案1

小编典典

App Engine 是一种平台即服务。这意味着您只需部署代码,平台会为您完成所有其他工作。例如,如果您的应用非常成功,App Engine
将自动创建更多实例来处理增加的数量。

阅读有关 App Engine
的更多信息

Compute Engine 是一种基础架构即服务。您必须创建和配置自己的虚拟机实例。它为您提供了更大的灵活性,并且通常比 App Engine
成本低得多。缺点是您必须自己管理应用程序和虚拟机。

详细了解 Compute Engine

如有必要,您可以混合使用 App Engine 和 Compute Engine。它们都可以很好地与Google Cloud
Platform的其他部分配合使用。

编辑(2016 年 5 月):

另一个重要的区别:如果没有请求进入,在 App Engine
上运行的项目可以缩减到零实例。这在开发阶段非常有用,因为您可以持续数周而不会超过实例小时的慷慨免费配额。灵活的运行时(即“托管虚拟机”)需要至少一个实例来持续运行。

编辑(2017 年 4 月):

Cloud Functions (目前处于测试阶段)在抽象方面比 App Engine 更上一层楼 -
没有实例!它允许开发人员部署一小段代码来执行以响应不同的事件,其中可能包括 HTTP 请求、云存储中的更改等。

与 App Engine 的最大区别在于函数按每 100 毫秒计费,而 App Engine 的实例仅在 15 分钟不活动后才会关闭。另一个优点是
Cloud Functions 立即执行,而对 App Engine 的调用可能需要一个新实例 -
并且冷启动一个新实例可能需要几秒钟或更长时间(取决于运行时和您的代码)。

这使得 Cloud Functions 非常适合 (a) 罕见调用 - 无需让实例保持活动状态以防万一发生某些事情,(b)
快速变化的负载,其中实例经常旋转和关闭,可能还有更多用例。

阅读有关云函数的更多信息

Google App Engine中的全局异常处理

Google App Engine中的全局异常处理

而不是将我的整个代码封装在try {} except {}块中,是否有某种方式可以全局捕获异常?

基本上,我正在寻找一种具有全局异常处理程序的方法,该处理程序将处理为Google App Engine编写的python应用程序中的所有未处理的异常

Google App Engine中的竞争问题

Google App Engine中的竞争问题

我在Google App Engine中遇到争用问题,并尝试了解发生了什么。

我有一个注释为的请求处理程序:

@ndb.transactional(xg=True,retries=5)

..并且在该代码中,我获取了一些东西,更新了其他东西,等等。但是有时在请求期间日志中会出现这样的错误:

16:06:20.930 suspended generator _get_tasklet(context.py:329) raised TransactionFailedError(too much contention on these datastore entities. please try again. entity group key: app: "s~my-appname"
path <
  Element {
    type: "PlayerGameStates"
    name: "hannes2"
  }
>
)
16:06:20.930 suspended generator get(context.py:744) raised TransactionFailedError(too much contention on these datastore entities. please try again. entity group key: app: "s~my-appname"
  path <
    Element {
      type: "PlayerGameStates"
      name: "hannes2"
    }
  >
  )
16:06:20.930 suspended generator get(context.py:744) raised TransactionFailedError(too much contention on these datastore entities. please try again. entity group key: app: "s~my-appname"
  path <
    Element {
      type: "PlayerGameStates"
      name: "hannes2"
    }
  >
  )
16:06:20.936 suspended generator transaction(context.py:1004) raised TransactionFailedError(too much contention on these datastore entities. please try again. entity group key: app: "s~my-appname"
  path <
    Element {
      type: "PlayerGameStates"
      name: "hannes2"
    }
  >
  )

..之后是堆栈跟踪。如果需要,我可以使用整个堆栈跟踪进行更新,但这有点长。

我不明白为什么会这样。查看我的代码行中的异常,我get_by_id在一个完全不同的实体(Round)上运行。错误消息中提到的名称为“
hannes2”的“
PlayerGameStates”是另一个实体GameState的父对象,GameState是get_async从数据库的前几行中获得的:

# GameState is read by get_async
gamestate_future = GameState.get_by_id_async(id,ndb.Key('PlayerGameStates',player_key))
...
gamestate = gamestate_future.get_result()
...

奇怪的是,没有对该实体进行数据存储写操作。我的理解是,如果同时并行更新同一实体,则可能会出现争用错误。或者,如果在短时间内发生太多写入,则可能会出现争用错误。

但是在阅读实体时也会发生这种情况吗?(“ suspended generator get ..”
??)而且,这是在5次ndb.transaction重试之后发生的吗?我在日志中看不到任何表明已重试的内容。

任何帮助是极大的赞赏。

Google App Engine中的自定义身份验证

Google App Engine中的自定义身份验证

有谁知道或知道我可以学习如何使用Python和Google App Engine创建自定义身份验证过程的地方?

我不想使用Google帐户进行身份验证,也希望能够创建自己的用户。

如果不是专门针对Google App Engine,是否有关于如何使用Python和Django实现身份验证的资源?

答案1

小编典典

django 1.0今天在Google AppEngine上进行了更新。但是您可以使用户身份验证像其他任何您实际上不能使用的会话一样,因为它是如此之大。

http://gaeutilities.appspot.com/中有一个会话实用程序

http://gaeutilities.appspot.com/session

http://code.google.com/p/gaeutilities/

要么,

您必须创建自己的用户表和哈希或加密密码,然后可能创建一个令牌系统,该系统仅使用令牌哈希或uuid cookie来模拟会话(会话始终只是cookie)。

我已经用基本的google.webapp请求和响应标头实现了一些。我通常使用uuid作为主键作为用户ID,然后对用户密码进行加密,并让其电子邮件进行重置。

如果您想授权用户外部访问数据,可以查看OAuth进行应用程序访问。

如果您只想按ID存储数据,并且面向更多用户,则可以使用像stackoverflow这样的openid,然后将配置文件数据附加到该标识符(如Django配置文件)(http://code.google.com/p/openid-
selector /)。

django 1.0刚刚在GAE上发布,但是我认为存在相同的问题,没有会话,您必须真正创建自己的存储会话数据。

关于Google App Engine中的进度栏谷歌进度条的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Google App Engine 和 Google Compute Engine 有什么区别?、Google App Engine中的全局异常处理、Google App Engine中的竞争问题、Google App Engine中的自定义身份验证等相关知识的信息别忘了在本站进行查找喔。

本文标签: