gpt4 book ai didi

ruby 多次阻止运行脚本

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:22 27 4
gpt4 key购买 nike

我已经编写了 ruby​​ 脚本,我将其放入 cronjob 中,如果有一个进程已经在同一个脚本上运行,则需要防止运行同一个脚本。基本上我试图防止为同一个脚本运行重复的进程,如果脚本实际上没有运行,那么只需要运行它。

我尝试使用 flock,但我认为它锁定文件仅用于写入目的。就像如果任何一个进程已经在写一个文件,那么没有其他进程可以写同一个文件。

我以某种方式通过检查正在运行的进程是否包含脚本名称来管理此操作,如果没有,则只有进程将启动。但是想知道 Ruby 中是否有任何内置模块可以处理这件事。

最佳答案

谢谢@Eric。但是我设法在没有安装任何额外的 gem 的情况下让它工作。

if $0 == __FILE__
if File.new(__FILE__).flock(File::LOCK_EX | File::LOCK_NB)
validation()
else
raise "Another process running for the same script."
end
end

__END__

关于ruby 多次阻止运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205309/

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