目前当动作多实例间隔时间很短地写入内容到同一个文件时,会产生冲突。
是否可以进行优化呢?比如增加一个选项,可以在此模块中 lock/mutex 一下文件,其他实例/动作执行到这一模块会稍微阻塞一下再写入。用户自己实现的话还是较有难度。
什么情况下需要同时写入同一个文件?
我感觉这不是一种合理的方式,如果多个实例,可能写多个文件更好一点,一方面避免冲突,另一方面可以避免混淆是哪个实例所写入的内容。可以考虑将这些文件放在同一个目录里。
我目前是在记录日志的时候遇到的。动作在发生某些事情/异常时会写入日志,由于动作有多实例,当两个实例同时发生异常时,就会同时写入,然后报错。
因为日志是按时间线性排列的,分成多个文件感觉会比较乱。目前还没有想到一个比较好的解决方法,所以就来这提一提😂,如果有什么替代路径,其实也不算必要。
感觉其实换种说法的话就是把这个模块变成一个线程/进程安全的模块,或者添加一个线程/进程安全的选项。🤔
1.43.39 增加了一个锁,试下看看。
赞!效果很不错!👍太给力了