gpt4 book ai didi

ruby-on-rails - Controller 中的 Rails 设置超时

转载 作者:行者123 更新时间:2023-12-04 05:26:24 27 4
gpt4 key购买 nike

在我的 Rails Controller 中,我想将一个文件下载到项目的 public 文件夹中(使用 Linux 系统命令 wget)。然后我希望该文件在那里停留一个小时,然后再调用命令 rm 将其删除。我可以设置超时,以便代码执行在稍后恢复之前暂停在某个时间点吗?

最佳答案

不能设置超时有两个原因:
首先,该进程将被网络服务器超时杀死。
其次,即使您设置的超时时间适合您的需要,负责等待的进程也会消耗资源,并且无法使用。要解决这个问题,您将不得不 fork 另一个服务器进程,您真的需要这个吗?

但是你可以使用https://github.com/jmettraux/rufus-scheduler

例如,在你的 Controller 中

require 'rubygems'
require 'rufus/scheduler'

def download_using_wget
...
if some_method_to_wget_file
scheduler = Rufus::Scheduler.start_new

scheduler.in '1h' do
some_code_to_rm_file(file)
end
end
...

并且 some_code_to_rm_file 将在你获取文件后一小时内启动

关于ruby-on-rails - Controller 中的 Rails 设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170637/

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