从应用程序内执行rails runner

时间:2014-02-23 17:54:34

标签: ruby-on-rails heroku

如何在我的应用程序中使用rails runner执行一次性脚本,例如当有人通过将在后台执行特定任务的Web界面按下按钮时。

我的应用程序结构类似于

myApp
  models
  controllers
  ...
  scripts
     task1.rb
     task2.rb

我目前使用

从控制台窗口手动执行它们
heroku run rails runner scripts/task1.rb

但是想转移到网络界面。

1 个答案:

答案 0 :(得分:0)

这是非理想的解决方案。

//  app/workers/runner_task_worker.rb
class RunnerTaskWorker
  def task1
    // call my script method from here.
    // assuming that your script method is included in rails app.
    task1_method   
  end
end

所以,然后从网络界面RunnerTaskWorker.new.task1

中调用它

注意:如果您的heroku中有worker,请使用sidekiqdelayed_job的工作人员。上面的代码将为heroku web服务器提供额外的负载。这就是为什么我说这是非理想的解决方案。