0

我是 ruby​​ 的新手...我该怎么做,我的控制器的方法每 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

请举例。谢谢)

4

3 回答 3

0

您可以使用发条宝石。

于 2013-09-10T20:33:12.323 回答
0

您可以执行以下操作:

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

这将按照您的要求执行该方法

于 2013-09-10T20:25:49.937 回答
0

当应用程序收到相应的请求时,Rails 会运行您的控制器方法。例如:

http://localhost:3000/solver/start_new_solving

可以调用SolverController'sstart_new_solving方法。

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

setTimeout("location.reload(true);", 5000)
于 2013-09-10T21:33:27.537 回答