У меня есть простое приложение для синатры, которому нужно сгенерировать файл (через внешний процесс), отправить этот файл в браузер и, наконец, удалить файл из файловой системы. Что-то в этом роде:
class MyApp < Sinatra::Base
get '/generate-file' do
# calls out to an external process,
# and returns the path to the generated file
file_path = generate_the_file()
# send the file to the browser
send_file(file_path)
# remove the generated file, so we don't
# completely fill up the filesystem.
File.delete(file_path)
# File.delete is never called.
end
end
Кажется, однако, что вызов send_file
завершает запрос, и любой код после него не запускается.
Есть ли способ убедиться, что сгенерированный файл очищен после того, как он был успешно отправлен в браузер? Или мне нужно прибегнуть к заданию cron, выполняющему очистку script на некотором интервале?