如何在我的应用程序中使用rails runner
执行一次性脚本,例如当有人通过将在后台执行特定任务的Web界面按下按钮时。
我的应用程序结构类似于
myApp
models
controllers
...
scripts
task1.rb
task2.rb
我目前使用
从控制台窗口手动执行它们heroku run rails runner scripts/task1.rb
但是想转移到网络界面。
答案 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
,请使用sidekiq
,delayed_job
的工作人员。上面的代码将为heroku web
服务器提供额外的负载。这就是为什么我说这是非理想的解决方案。