Я преобразовываю файл CSV XLS 2 с системной командой в Ruby.
После преобразования я обрабатываю файлы CSV, но преобразование все еще работает, когда программа хочет обработать файлы, поэтому в то время они не существуют.
Кто-то может сказать мне, если возможно позволить Ruby ожидать правильное количество времени системной команды для окончания?
Прямо сейчас я использую:
sleep 20
но если это займет больше времени однажды, это не правильно, конечно.
Что я делаю конкретно это:
#Call on the program to convert xls
command = "C:/Development/Tools/xls2csv/xls2csv.exe C:/TDLINK/file1.xls"
system(command)
do_stuff
def do_stuff
#This is where i use file1.csv, however, it isn't here yet
end
Попробуйте использовать потоки:
command = Thread.new do
system('ruby programm.rb') # long-long programm
end
command.join # main programm waiting for thread
puts "command complete"