监控Google pub / sub提交作业的状态

时间:2016-05-06 10:47:23

标签: flask google-app-engine-python google-cloud-pubsub

我是Google Compute / Google App Engine平台的新手。我目前正在使用celery将用于异步任务的python flask应用程序迁移到Google Compute / Google App Engine平台。但是在它编写的文档中,我应该使用Google Pub / Sub而不是芹菜。在我的应用程序中,每当我运行异步任务时,我都有一个页面来监视作业的状态,使用与http://blog.miguelgrinberg.com/post/using-celery-with-flask相同的原则。我已经检查了google pub / sub的文档,但我不知道如何使用google pub / sub实现相同的功能。任何人都可以帮助或指出我在google pub / sub中实现相同的正确方向。

1 个答案:

答案 0 :(得分:1)

您可能可以使用psq来设计看起来像芹菜。从一般的Cloud Pub / Sub角度来看,您将遵循以下步骤:

  1. Create a topic了解您的状态更新消息。
  2. 在要监视其状态的异步任务中,定期publish显示状态的消息。此消息将采用您选择的某种格式,表示完成百分比或要显示的特定消息。
  3. Create a subscription用于您的监控页面,该页面将接收有关该主题的消息。
  4. 在您的监控页面(或将向监控页面提供数据的后台进程)中,pull messages进行订阅。
  5. 处理消息并更新监控页面的作业状态。
  6. Ack the messages你拉了并处理了。
  7. 在此工作流程中要记住以下几点:

    1. Cloud Pub / Sub保证至少一次交付。这意味着您可能会多次收到相同的消息。
    2. Cloud Pub / Sub不提供任何订购保证。因此,如果您定期发布状态更新,您的订阅者可能会无法收到这些更新。对于您的情况,您可能希望您的消息在消息中包含某种时间戳或严格增加的标识符,以按顺序排列每个任务的状态更新。如果您跟踪收到的最新状态更新,那么您可以忽略旧消息并立即确认它们。