2011-07-07 42 views
0

我有几个视图函数处理来自远程数据源的数据。在很多情况下,这个处理可能需要一秒钟才能完成。同时访问这些视图功能是否会潜在地扰乱我的数据?Django认为线程安全?

此外,我将有一个连续运行的后台线程将填充我的数据库。这个后台线程将调用我的视图函数将调用的一些相同的库函数。这是一个潜在的线程安全问题吗?

如果是,那么最佳做法是什么?我假设只是使用Python的锁定机制将工作,但有没有更好的方法?

谢谢!

-Travis

+0

您使用的是什么webserver?它使用什么进程/线程模型来运行Django应用程序? –

回答

0

对于长时间运行的进程,使用Celery

从长远来看,您可以创建一个模型实例,并启动一个用来填充它的芹菜任务。一个视图可以显示这个实例的状态,用自我刷新的html直到结果出现。

0

我没有看到你在那里做任何明显会导致线程问题的事情。线程安全更类似于如果想要并行处理单个请求,那么您必须确保线程安全的一个请求的多个线程。

在你的情况下,每个请求正在访问数据并将获得它自己的副本。

0

您正在从远程来源读取/写入数据。我会尝试在这些远程来源同步访问或使用事务,而不是在客户端!