我有几个处理远程数据源的视图函数。在许多情况下,此处理可能需要一秒钟才能完成。同时访问这些视图功能是否可能会扰乱我的数据?
此外,我将有一个不断运行的后台线程,它将填充我的数据库。这个后台线程将调用我的视图函数将调用的一些相同的库函数。这是一个潜在的线程安全问题吗?
如果是,最佳做法是什么?我假设只使用python的锁定机制会起作用,但是有更好的方法吗?
谢谢!
-Travis
答案 0 :(得分:0)
对于长时间运行的流程,请使用Celery。
对于长视图,您可以创建一个模型实例,并启动一个填充它的芹菜任务。视图可以显示此实例的状态,并自动刷新html,直到结果存在。
答案 1 :(得分:0)
我没有看到你在那里做任何明显会导致任何线程问题的事情。如果你想并行处理单个请求,那么线程安全就更像是,那么你必须确保一个请求的多个线程在线程安全的地方。
在您的情况下,每个请求都在访问数据并获得它自己的副本。
答案 2 :(得分:0)
您正在从远程来源读取/写入数据。我会尝试在这些远程源上同步访问或使用事务,而不是在客户端!