导轨设置在控制器中



在我的控制器中,我想将文件下载到项目的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

后的一小时内启动

相关内容

  • 没有找到相关文章

最新更新