我正在尝试为翻译众包任务构建一个 Django 应用程序。
对于数据库中的每个任务,我都有一个is_completed
在用户完成任务时设置的布尔标志。我还有一个“给我一个随机任务”按钮,它可以从未完成的任务列表中选择。
我的问题是这个。如果一个用户紧接着另一个用户单击按钮,我如何防止两个用户被赋予相同的任务?
我正在考虑has_started
在加载任务时在行上设置一个标志,并从随机可用任务列表中删除已启动的任务:但是如果用户启动任务然后关闭页面而不完成它怎么办,所以它永远不会被取消设置? 我最终会完成很多未完成的任务。
我可以用过期的会话变量以更聪明的方式标记它吗?但我知道很难在 JavaScript 中可靠地捕获“用户关闭页面”事件。
谢谢!