Rails:放置在哪里以及如何调用预定的清理方法

Posted

技术标签:

【中文标题】Rails:放置在哪里以及如何调用预定的清理方法【英文标题】:Rails: where to put and how to call scheduled clean-up methods 【发布时间】:2014-05-04 03:41:45 【问题描述】:

我已经为 Rails 应用程序编写了几个清理方法,我正在尝试找出存储它们的最佳位置:

def flush
  @documents = Document.ready_to_flush
  @documents.each do |document|
    document.update_attributes(generated: false,
                               high_res: nil,
                               low_res: nil)
    server_url = "#App::Application.config.server/tasks/documents/#document.id/flush?token=#App::Application.config.server_token"
    response = HTTParty.get(server_url)
    if response.ok? && task_id.present?
      render json: "Assets PDFs for #document.id."
    else
      render json: "Assets for #document.id not flushed."
    end
  end
end

def clear_temporary_directory
  FileUtils.rm_rf(Dir.glob("#::Rails.root/public/temporary/*"))
end

我从schedule.rb(带有whenever gem)给他们打电话,如下所示:

every 1.day, at: '12:17 am' do
  runner 'clear_temporary_directory', environment: 'production'
end

every 1.day, at: '12:20 am' do
  runner 'flush', environment: 'production'
end

只是不确定存储这些***方法的最佳位置在哪里。是否有最佳实践?

【问题讨论】:

【参考方案1】:

真的没有。如果您要制作更多这些,您可能需要创建一个 app/something... 文件夹,否则,app/helpers/ 应该可以正常工作(不要忘记包含它。)

【讨论】:

是的,我试图避免使用助手。谢谢你的建议。 如果这是正确答案,您能否标记为正确并点赞? 我不会提供任何其他人有任何见解。

以上是关于Rails:放置在哪里以及如何调用预定的清理方法的主要内容,如果未能解决你的问题,请参考以下文章

Rails 在哪里放置诸如 ini 文件之类的配置?

在哪里放置不是模型、视图、控制器或助手的 Rails 代码?

如何在Rails 4中清理原始SQL

如何以及在哪里提交 Rails 上的表单值?

Datalogics PDF 填充 Rails

Grails - 在哪里放置测试文件以及如何加载它们