我有一个后台作业,在 MongoDB 上执行 map/reduce 作业。当用户向文档发送更多数据时,它会启动在文档上运行的后台作业。如果用户发送多个请求,它将为同一个文档启动多个后台作业,但只有一个真正需要运行。有没有办法可以防止多个重复实例?我正在考虑为每个文档创建一个队列,并在提交新作业之前确保它是空的。或者也许我可以以某种方式设置一个与我的文档 ID 相同的作业 ID,并在提交之前检查是否不存在?
另外,我刚刚发现了一个 sidekiq-unique-jobs gem。但是文档不存在。这是我想要的吗?