线程安全附加到来自Django应用程序的文件,无需芹菜

线程安全附加到来自Django应用程序的文件,无需芹菜,django,python-2.7,thread-safety,append,locking,Django,Python 2.7,Thread Safety,Append,Locking,我有一个小的Django应用程序。在每个请求期间,我希望收集一些请求数据(来自定制中间件和一些视图),并将其附加到一个文件中。由于应用程序是在多线程环境中运行的,所以我希望append是线程安全的 我做了一些研究,但大多数时候人们推荐芹菜。由于应用程序非常小,我希望避免使用芹菜。我可以使用简单的文件锁定,但是,我不知道如何使用Django实现它,因为我不直接管理主线程 我唯一发现的是Django的模块,但我不确定它是否解决了我的问题。我可以简单地从我的中间件运行代码的和平吗 from djang

我有一个小的Django应用程序。在每个请求期间,我希望收集一些请求数据(来自定制中间件和一些视图),并将其附加到一个文件中。由于应用程序是在多线程环境中运行的,所以我希望append是线程安全的

我做了一些研究,但大多数时候人们推荐芹菜。由于应用程序非常小,我希望避免使用芹菜。我可以使用简单的文件锁定,但是,我不知道如何使用Django实现它,因为我不直接管理主线程

我唯一发现的是Django的模块,但我不确定它是否解决了我的问题。我可以简单地从我的中间件运行代码的和平吗

from django.core.files import locks

with open('./file', 'wb') as f:
     locks.lock(f, locks.LOCK_EX)
     f.write('Django')

您使用的是什么版本的python?也就是说,您是否可以使用文件句柄的线程本地存储?我使用的是python 2.7。如果没有像文件锁这样更简单的解决方案,使用队列对我来说是可以的。是的,忘记了它也在2.7中。