我有一个将文件写入磁盘的功能。使用并发服务器,可能(甚至可能)同时由两个线程调用此函数。查看源代码,似乎在django.db.transaction中包装我的函数将使我的db操作和我的非db操作保持原子状态。这是对的吗?
更新:我真正想要的不仅仅是一个是或否的答案,而是一个解释或评论django.db.transaction中enter_transaction_management正在发生的线程内容的链接.py正在做。
答案 0 :(得分:0)
您应该为要写入的文件添加进程标识符,以确保它是唯一的。否则lock the file以确保您是唯一写信的人。
答案 1 :(得分:0)
通过“Django交易”,我认为你的意思是django.db.transactions中的交易?
而且,如果是这样的话 - 没有。他们仅属于数据库事务(即,他们只会发出BEGIN
然后COMMIT
或ROLLBACK
。