我正在使用以下工作流程开展项目:
第一部分:
第二部分:
现在,我有10万条记录要保存到数据库中。我必须使用实体框架更新现有记录添加不存在的记录(无重复)。为此,我有两种情况:
1-在Q(消费者)中处理URL时,将一条记录保存到数据库中 ==>许多对数据库的请求,浪费时间与实体框架,每次我们将添加到数据库锁定以检查元素是否重复
2-等待第一部分结束并向数据库发出一个大请求,以添加所有新记录并更新现有记录。 ==>没有充分利用在异步和多线程上下文中运行消费者,因为我必须等待Q中的所有元素被处理
我认为如果我可以做中间解决方案会更好:添加另一个阻塞集合Q2,这样第一部分中的每个消耗元素都将添加到Q2。当Q2的大小达到固定的最佳数量(例如1000个元素)时,启动Q2的消费者,该消费者将向数据库添加1000个记录。 所以我正在考虑在我的解决方案中添加另一个生产者/消费者机制。
有没有更好的方法来解决此问题。注意:我的首要任务是速度