使用锁和多处理的Flask应用

时间:2018-09-12 16:01:24

标签: python multithreading flask multiprocessing wsgi

通过基于Flask的API公开数据库,我在视图函数中使用了锁,以避免非原子数据库操作出现问题。

例如在处理PUT时,如果数据库驱动程序不提供原子向上插入功能,我只要抓住该锁,然后读取,更新,写入然后释放该锁即可。

AFAIU,它在多线程环境中工作,但是由于该锁属于Flask应用程序,因此如果使用多个进程,它将失败。这是正确的吗?

如果是这样,人们在使用多个进程时如何处理锁?他们是否使用Redis这样的外部库来存储锁?

子问题。我的apache配置是

WSGIDaemonProcess app_name threads=5

我可以得出结论,直到我没有在其中扔一些processes=N之前,我都是安全的吗?

0 个答案:

没有答案