2013-09-10 3 views
0

Я новичок в ruby ​​... Как я могу это сделать, чтобы мой метод контроллера запускался автоматически каждые 5 секунд? Что мне нужно для этого? Где читать? И как это сделать?Выполнить метод контроллера каждые 5 секунд

Теперь мой метод:

def start_new_solving 
    @session = Session.new 
    @user = User.find(:first, conditions: {free: true}) 
    @secret = Secret.find(:first, conditions: {status: "uploaded"}) 
    if @user.present? && @secret.present? 
     @session.status = "start solving" 
     @session.user_id = @user.id 
    end 
    @session.save! 
    @secret.update_attributes(status: "start solving") 
    end 

Пожалуйста, дайте пример. Спасибо)

ответ

0

вы можете сделать следующее:

Thread.new do 
    while true do 
     sleep 5 
     start_new_solving 
    end 
    end 

Это запустит метод, как вы спросите

0

Rails запускает методы вашего контроллера, когда приложение получает соответствующий запрос. Например:

http://localhost:3000/solver/start_new_solving 

можно назвать start_new_solving метод SolverController «s.

Чтобы снова запустить метод контроллера через 5 секунд, браузер просто должен перезагрузить страницу, например. через JavaScript:

setTimeout("location.reload(true);", 5000) 
Смежные вопросы