后的一小时内启动
在我的控制器中,我想将文件下载到项目的public
文件夹中(使用Linux System命令wget
)。然后,我希望该文件待在那里一个小时,然后致电命令rm
删除命令。我可以设置一个超时,以便代码执行在某个时候暂停,然后再恢复?
您无法设置时间,原因有两个:
首先,该过程将被Web服务器超时杀死。
其次,即使您设置了超时,适合您的需求,负责等待的过程也将吃掉资源,并且将无法使用。要解决此问题,您将必须为另一个服务器进程,您真的需要此问题吗?
但是您可以使用https://github.com/jmettraux/rufus-scheduler
例如,在您的控制器中
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将在您wget file