线程有限的Python中的异步,多线程抓取

时间:2019-03-13 09:24:24

标签: python multithreading

我们必须重构抓取算法。为了加快速度,我们得出了多线程进程的结论(并将其限制为最多3个)。一般来说,报废包括以下几个方面:

  1. 报废(异步请求,大约需要2秒钟)
  2. 图像处理(每幅图像异步,每幅图像约500ms)
  3. 更改数据库中的源项目(异步请求,大约2秒)

我的目标是创建一批剪贴请求,并在循环处理它们时,创建一堆后续的异步操作:处理图像并在图像处理后->更改源项目。

换句话说-报废。但是图像处理和更改源项目必须在单独的受限异步线程中运行。

仅认为我不知道如何堆叠批处理和限制线程。

有人遇到过相同的任务吗?您使用什么方法?

1 个答案:

答案 0 :(得分:1)

您正在寻找的是消费者-生产者模式。只需创建3个不同的队列,当您在其中一个队列中处理项目时,将新工作放入另一个队列。然后,您可以使用3个不同的线程,每个线程处理一个队列。