【发布时间】:2017-05-30 12:12:47
【问题描述】:
我有一个下载大量 JSON 的脚本。我在下载 JSON 后处理它们,并将它们发送到其他一些功能。目前,我只是等到所有 JSON 都下载完毕,然后再处理它们。有没有办法并行执行此操作?就像,一旦每个 JSON 被下载,移动它来执行一些任务。
我正在考虑使用 RabbitMQ,它在完全下载后向消费者发送 JSON 的路径。我不知道如何确定 JSON 是否已下载并准备好使用它。
我查看了其他答案,但找不到任何明确的答案。我只是想知道如何继续并发部分或如何将刚刚下载的 JSON 带到下一个进程。
【问题讨论】:
-
您可以尝试混合使用
threading和Queue模块。尽快提出请求、排队和下载。 -
谢谢,我会试试的。但是可能有一个 JSON 正在下载过程中,对吧?我如何将它与完全下载的文件区分开来,以便我不处理它?
-
好吧,我不知道您是如何实现这些请求的。但是我会创建一个列表,其中包含用于下载和启动每个线程的 URL 或加入一些,这取决于您的优化技能。之后,您可以继续检查
Queue的大小,如果大于零则下载。明白了吗? -
是的。我明白了要点。我会尝试。非常感谢您的帮助:)
标签: python json concurrency rabbitmq producer-consumer