我有个不和谐的机器人我需要放大。bot的主要功能是从第三方网站获取数据,并保存一个包含成员信息的数据库。这两个操作非常耗时,我希望为每个操作都有一个单独的工作人员/进程。
我的制约因素:
我一直在网上寻找最好的方法来做这件事,但是我进入了几个实现这种解决方案的库/方法。我有哪些选择,他们的长处和弱点?
发布于 2020-08-15 09:23:13
由于主机的请求数量是有限制的,所以我首先尝试运行一个同步程序,并在分钟结束之前检查是否达到了限制。如果是这样的话,就没有必要同时运行其他工人。但是,如果没有达到限制,那么我建议您同时使用asyncio
和aiohttp
来异步获取请求。有大量关于如何开始使用这些库的信息。
另一种选择是使用好的旧threading
模块(或用于更高级别的用例的concurrent.futures
)。这两种选择各有优缺点。我要做的是首先尝试concurrent.futures
(即ThreadPoolExecutor
上下文管理器)模块,因为您只需要添加一行代码。如果它没有完成任务,那么请记住:必要时使用asyncio
,必要时使用threading
。这两个模块都很容易使用和理解,但它们确实需要遵循一个通用结构,这意味着您很可能不得不更改代码。
https://stackoverflow.com/questions/63428663
复制相似问题