gpt4 book ai didi

ruby-on-rails - cron 作业没有完成这个过程?

转载 作者:行者123 更新时间:2023-12-04 23:01:02 26 4
gpt4 key购买 nike

我有一个使用 ffmpeg 将视频转换为 MP4 格式的 ruby​​ 程序。我使用 crontab 每 15 分钟运行一次 ruby​​ 程序。 crontab 实际运行的是 ruby​​ 程序,但是文件的转换没有完成。该过程在完成转换之前停止。我的 testin 示例代码如下。

def convert(y)
system "ffmpeg -i #{SOURCE_FOLDER + LOCATION_SOURCE}/#{y} -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 #{DEST_FOLDER + LOCATION_DEST}/#{y}"
end
SOURCE_FOLDER = "/home/someone/work/videoapp/public/"
DEST_FOLDER = "/home/someone/work/videoapp/public/"
LOCATION_SOURCE = "source"
LOCATION_DEST = "dest"
files = Dir.new(SOURCE_FOLDER + LOCATION_SOURCE)
files.each do |x|
convert(x)
end

如果我在控制台中手动运行此代码,它可以正常工作。

最佳答案

我的第一个猜测是它正在“点”目录中消亡。在 Unix 中,每个目录/文件夹中有两个目录:“.”和 ”..”。您要么需要专门跳过脚本中的那些:

next if File.directory?(x) # OR
next file x.match(/^\.+$/)

- 或者 -

专门寻找您想要的任何文件类型
Dir[SOURCE_FOLDER + LOCATION_SOURCE + "*.wav"].each do |file|
convert(file)
end

更新:20110401

将 Unix 重定向添加到 crontab 条目以查看输出是什么
* * * * * /your/program/location/file.rb 1> /some/output/file.txt 2>&1

关于ruby-on-rails - cron 作业没有完成这个过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5429482/

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