2014-02-23 69 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服務器帶來額外的負擔。這就是爲什麼我說這是非理想的解決方案。

相關問題