2014-02-23 35 views
1

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

我的应用程序的结构类似于

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

目前,我手动从控制台窗口中使用

heroku run rails runner scripts/task1.rb 

执行他们不过想移动到一个Web界面。

回答

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服务器带来额外的负担。这就是为什么我说这是非理想的解决方案。

相关问题