通过基于Flask的API公开数据库,我在视图函数中使用了锁,以避免非原子数据库操作出现问题。
例如在处理PUT
时,如果数据库驱动程序不提供原子向上插入功能,我只要抓住该锁,然后读取,更新,写入然后释放该锁即可。
AFAIU,它在多线程环境中工作,但是由于该锁属于Flask应用程序,因此如果使用多个进程,它将失败。这是正确的吗?
如果是这样,人们在使用多个进程时如何处理锁?他们是否使用Redis这样的外部库来存储锁?
子问题。我的apache配置是
WSGIDaemonProcess app_name threads=5
我可以得出结论,直到我没有在其中扔一些processes=N
之前,我都是安全的吗?