googleappengine:获取大量url和数据处理

2024-09-29 19:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的应用程序中,我获取大量的url和解析信息。 我正在尝试使用延迟库和任务队列。 我将每个页面的获取拆分为单独的任务,并进行以下处理。 以下是延迟任务的示例:

def deftask(somevalue, pagenumber):
    fetch url
    parse with beautiful soup
    some processing
    saving to datastore

之后,在post handler中,我在循环中运行以下任务:

for i in range(0, 200):
     deferred.defer(deftask, somevalue, i)

所以仅仅200次迭代就需要5-8分钟。那是很长的一段时间。你知道吗

任务队列的性能相同。我也在循环中发送任务:

taskqueue.add(url='/taskhandler', params = {'page' : i}, transactional=True)

只有一个队列。你知道吗

所以我的问题是如何提高绩效?你知道吗

我应该改变我的方法吗?或者可能是goggle应用程序引擎不适合这个目的?我应该把我的项目转移到与django等VPS托管。?你知道吗


Tags: 信息应用程序url示例队列parsedefwith
1条回答
网友
1楼 · 发布于 2024-09-29 19:31:09

您可以在中控制执行时间队列.yaml,例如,将速率设置为10/s。确保您的模块配置设置为自动缩放,或使用适当的手动缩放。你知道吗

queue:
- name: default
  rate: 5/s

还要查看日志并查找失败的任务,这可能是它们需要这么多时间才能完成的原因。你知道吗

对每个任务使用单独的任务:

fetch url
parse with beautiful soup
some processing
saving to datastore

因此,如果parse with beautiful soup失败,它将不再获取此url,而是从数据存储中获取此内容。你知道吗

相关问题 更多 >

    热门问题