我实现了一个事件监听器,通过creationTime以升序查询要处理的新项目。
我处理多线程。
我目前的工作流程是:
我设置了3秒的轮询频率,这显然可能涉及在当前检索到的项目被完全处理之前(由于多线程)查询新项目,标记"已消费"集。
只有查询是单线程的,否则会导致检索重复。
我想知道第2步是否必不可少:用" InProgress"更新每个项目标志
实际上,它会减慢整体速度。
我考虑过跳过这一步但是为了确保期货查询不会检索当前正在处理的项目(让我们想象一个非常长的计算),我不会尽快开始下一个检索查询整批处理。
基本上,我的查询步骤将等待工人完成他们当前的工作。
显然,如果工作类型在计算时间上相似,这将是有意义的。
在处理多线程计算时轮询数据库的好习惯是什么?