问题描述
|
我正在尝试实现一些代码,以通过该服务的API从另一服务导入用户数据。我要设置它的方式是将所有请求作业都保留在队列中,我的简单导入程序将从中提取该队列。一次处理一项任务几乎不会耗尽计算机的任何资源,因此我想知道构造一个程序一次运行多个“作业”的标准方法是什么?我应该在研究线程还是一个可能从队列中拉出作业并启动导入程序实例的程序?谢谢您的帮助。
编辑:我现在拥有的是Python,尽管我愿意在需要时用另一种语言重写它。
解决方法
使用生产者-消费者队列,并根据需要使用尽可能多的消费者线程来优化主机上的资源使用(抱歉,这是非常模糊的建议,但是“正确的数字”取决于问题)。
如果请求是轻量级的,那么您可能只需要一个Producer线程即可处理它们。
启动多个流程也可以工作-最佳选择取决于您的要求。您是否需要生产者知道该操作是否有效,还是“一劳永逸”?如果发生故障,是否需要重试逻辑?您如何在此模型中保持并发消费者数?等等。
对于Python,请看一下。