我不知道我想要理解的是什么,上网把我带到了这里,现在我的代码中需要这个。
我使用 django-rest-framework、gunicorn 和 Nginx。
假设我有 3 个gunicorn 设置的工作进程。
我有一个非常简单的视图,它从数据库读取一个值,执行一项不同的任务,大约需要 1 秒,将值增加 1,然后将其保存回数据库。
class CreateView():
value = MyModel.objects.get(id=1).integerValueField
otherTask() #takes around 1 second (assume)
updatedValue = value + 1
MyModel.objects.filter(id=1).update(integerValueField=updatedValue)
return
Run Code Online (Sandbox Code Playgroud)
这总是有效吗?
如果gunicorn的不同工作进程正在处理并发用户的请求怎么办?如果在读取值和由其他工作进程更新值之间由不同的进程更新数据库(integerValueField 字段) ?这是为了保持完整性而以某种方式锁定的吗?
如果我可以获得有效的链接来阅读有关该主题的更多信息,那么对我来说会很有效。