【问题标题】:rake task has to run a controller method every 2 minutesrake 任务必须每 2 分钟运行一次控制器方法
【发布时间】:2015-10-05 11:25:17
【问题描述】:

rake 任务必须每 2 分钟在 downloads_controller 中运行一个方法(索引)。所以我安装了whenever gem。并在“config/schedule.rb”文件中添加。

every 2.minutes do
 rake "*****"                 
end

我不知道如何在 rake 之后给我的操作(app/controller/downloads_controller.rb->index)目录。在其他文件中有什么需要修改的吗?请任何人帮助我。

更新代码

every 1.minutes do
  rake "Download.index"
end

并将索引方法移至下载模型。 以及如何检查rake任务是否工作?

【问题讨论】:

  • 为什么要从 rake 运行控制器操作?理想情况下这没有意义。
  • 您可以将业务逻辑移动到Model,您可以在rake 中调用您的Model method
  • 我的实际任务是我必须每隔 x 分钟从一个特定的 url 下载一个文件。所以我在 download_controller 中的 index 方法中编写了逻辑。
  • 好的。您是如何在Controller 中获取该网址的?我想你可以在 Model 中使用相同的 url,并在 rake 中使用 Model 方法。
  • @vjnan369........试试我的答案。

标签: ruby-on-rails ruby ruby-on-rails-4 rake whenever


【解决方案1】:

好的。您如何在Controller 中获得该网址? 我想你可以在 Model 中使用相同的 url,并在 rake 中使用 Model 方法。

【讨论】:

【解决方案2】:

现在它为我工作....

我将方法实现移至添加到 lib/tasks 的“downloader.rake”文件。 downloader.rake 中的代码是

namespace :downloader do
desc "download a file"
task:downloading => :environment do
Rails.logger.info("message from task")
.......method implementation........
end
end

我在配置文件的“schedule.rb”中安排了上述实现

every 2.minutes do
rake "downloader:downloading"
end

这里的“downloader”是 rake 文件的名称,“downloading”是任务名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多