对多实例操作同一个文件的情况进行优化

功能建议 · 139 次浏览
zryan 创建于 2024-11-02 14:25

目前当动作多实例间隔时间很短地写入内容到同一个文件时,会产生冲突。

 

是否可以进行优化呢?比如增加一个选项,可以在此模块中 lock/mutex 一下文件,其他实例/动作执行到这一模块会稍微阻塞一下再写入。用户自己实现的话还是较有难度。


回复内容
CL 2024-11-02 15:26
#1

什么情况下需要同时写入同一个文件?

我感觉这不是一种合理的方式,如果多个实例,可能写多个文件更好一点,一方面避免冲突,另一方面可以避免混淆是哪个实例所写入的内容。可以考虑将这些文件放在同一个目录里。

zryan 回复 CL 2024-11-02 15:47 :

我目前是在记录日志的时候遇到的。动作在发生某些事情/异常时会写入日志,由于动作有多实例,当两个实例同时发生异常时,就会同时写入,然后报错。

因为日志是按时间线性排列的,分成多个文件感觉会比较乱。目前还没有想到一个比较好的解决方法,所以就来这提一提😂,如果有什么替代路径,其实也不算必要。

感觉其实换种说法的话就是把这个模块变成一个线程/进程安全的模块,或者添加一个线程/进程安全的选项。🤔

zryan 最后更新于 2024-11-02 16:02
CL 2024-11-04 08:37
#2

1.43.39 增加了一个锁,试下看看。

zryan 回复 CL 2024-11-05 01:09 :

赞!效果很不错!👍太给力了

回复主贴