2013-09-10 71 views
0

我是新来的红宝石... 我该怎么做,我的控制器的方法每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 

可以称之为SolverControllerstart_new_solving方法。

要在5秒后再次运行控制器方法,浏览器只需重新​​加载页面,通过JavaScript:

setTimeout("location.reload(true);", 5000)