我正在使用Django,Celery,Eventlet和dnspython来异步解析大约500个RSS源。
当我尝试同时解析超过20个Feed时,使用dnspython会导致“查找超时”错误。 当我卸载dnspython时,一切都很好,但我失去了一些时间,因为dns查找阻止了芹菜池。你有什么想法可以解决吗?
这是我的芹菜任务代码:
import eventlet
feedparser = eventlet.import_patched('feedparser')
from celery import group
@task(ignore_result=True)
def update_feeds():
group(update_feed.s(feed) for feed in Feed.objects.filter(active=True)).apply_async()
@task(ignore_result=True)
def update_feed(feed):
parsed_feed = feedparser.parse(feed.feed_url, etag=feed.etag, modified=feed.modified)
# It fails when I have dnspython installed returning <urlopen error (-3, 'Lookup timed out')> error
我正在使用Ubuntu 12.04 LTS