gpt4 book ai didi

ruby - ruby 脚本偶尔出现 "Permission denied @ rb_sysopen"

转载 作者:行者123 更新时间:2023-12-04 19:12:57 25 4
gpt4 key购买 nike

我正在开发一个 ubuntu 16.04 盒子:

ruby 2.3.1p112

filesystem : XFS


我编写了一个 ruby​​ 脚本,它将小而独特的文本文件写入一组文件夹,每次写入将在大约 5 秒内发生,并且每次写入的文件夹都是随机的。
但有时会发生此错误:
"Permission denied @ rb_sysopen" 
奇怪的是它可能发生在同一个文件夹上,该文件夹在一分钟左右之前可以正常写入而不会出错。所以这与文件权限无关。
我还通过“xfs_repair”卸载了相关磁盘以进行磁盘检查,没有发现任何异常,并且在我重新安装它之后,同样的错误会以不规则的方式出现。
请问有什么提示吗?

最佳答案

无法推测根本原因,但如果您绝对确定这是一个暂时性问题并且您只需要使其正常工作,您可以尝试 Ruby 的 retry .

def write_file(file, content)
File.write(file, content)
rescue Errno::EACCES
retry
end

我还会添加重试限制,以防万一这不是暂时的。
def write_file(file, content)
retries ||= 3
return if (retries -= 1) == 0

File.write(file, content)
rescue Errno::EACCES
retry
end

您可能还需要抛出 sleep在这种情况下,这是时间敏感的。你需要进行实验。请注意不要将这段代码变成阻塞代码。

显然,这种蛮力远非理想,但有时你必须做你必须做的事情。

关于ruby - ruby 脚本偶尔出现 "Permission denied @ rb_sysopen",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48479281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com