【问题标题】:Tweets and followers fetching app with Google App Engine使用 Google App Engine 获取推文和关注者的应用
【发布时间】:2018-09-05 13:52:51
【问题描述】:

我正在尝试使用 Google App Engine 在 Python 中构建一个应用程序,该应用程序获取特定帐户的关注者,然后获取他们的推文。我将它基于this template 并对其进行更改以适应我的需要。

目前的问题是,当我尝试获取关注者时,由于 Twitter API 等待时间,我收到了 DeadlineExceededError

我发现this 发布了关于如何解决相同问题的帖子,我认为在我的情况下,最好的解决方案是使用后端,但我注意到它们已被弃用。

有人知道我如何在不弃用模块的情况下获得相同的结果吗?

【问题讨论】:

    标签: python google-app-engine google-cloud-platform backend


    【解决方案1】:

    您有几个选项可用于长时间运行的任务:

    • Use GAE Task Queues:GAE 提供推送和拉取队列,允许您在单个请求之外异步执行工作。
    • Use Cloud Pub/Sub:一种拉取队列,这将允许您的 App Engine 应用在您每次想要获取关注者或获取推文时发布一条消息。然后,订阅者会从队列中获取消息,执行长时间运行的任务,然后将结果放入某个数据存储区。
    • Use GAE Services:这将允许您创建后台服务,manually scale it 可以根据需要运行。

    【讨论】:

    • 不知道有没有使用服务的示例代码有某种起点?
    • 服务真的和其他应用一样,只是在app.yaml多了一个service: your-service-id,可以独立扩展。见stackoverflow.com/a/48684042/328036
    【解决方案2】:

    后端(模块)已被弃用,取而代之的是服务:

    https://cloud.google.com/appengine/docs/flexible/python/an-overview-of-app-engine

    对于您希望能够处理超过 60 秒的请求的服务,请将其设置为手动缩放。然后,请求最多可以运行 24 小时(或直到您将其关闭)。见:

    https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed#instance_scaling

    当然,您的成本可能会随着长时间运行的实例和请求而增加。

    【讨论】:

    • 不知道有没有使用服务的示例代码有某种起点?
    猜你喜欢
    • 1970-01-01
    • 2015-05-18
    • 2019-07-11
    • 1970-01-01
    • 2017-09-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    相关资源
    最近更新 更多