我在django中使用芹菜,并将任务结果存储在DB中。我正在考虑让一组工作人员从一个消息代理读取消息。现在,我可以让多个客户端提交芹菜任务,每个客户端都将在不同的数据库中创建/存储任务及其结果。尽管工作人员很常见,但他们知道每个任务要在哪个DB上进行操作。
我是否可以生成重复的任务ID,因为它们是由指向不同DB的不同客户端提交的?
谢谢,
最终会有重复项。许多人忽视了这个问题,因为它是一个"低概率",然后当它击中他们时,他们会感到惊讶。然后,一个故事泄露了某人是如何登录另一个使用Facebook的帐户的。如果你要求它们始终是唯一的,那么你必须在每个ID前面加上永远不会重复的东西,比如用微秒表示的当前日期和时间。
如果这还不够好,因为发生冲突的可能性更小,您可以创建一个小型应用程序来生成这些前缀,并在日期和微秒上添加一个计数器(在每个哈希请求后递增,每隔几秒重置一次)。它必须在单线程模式下工作,但这将保证生成不会冲突的唯一前缀。