Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails服务器启动时初始化ruby类中的方法_Ruby On Rails_Ruby_Multithreading_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何在rails服务器启动时初始化ruby类中的方法

Ruby on rails 如何在rails服务器启动时初始化ruby类中的方法,ruby-on-rails,ruby,multithreading,ruby-on-rails-3,Ruby On Rails,Ruby,Multithreading,Ruby On Rails 3,我已经创建了ruby线程,它可以保持从队列中轮询消息。 下面是保持无限轮询队列的基本代码块。我如何在rails服务器启动时初始化此方法(Poller类中的poll方法),以便在应用程序启动时运行此代码(无限循环线程)块 class Poller class << self def poll begin ----polling logic for queue sleep(1.minute) end while(true) end

我已经创建了ruby线程,它可以保持从队列中轮询消息。 下面是保持无限轮询队列的基本代码块。我如何在rails服务器启动时初始化此方法(Poller类中的poll方法),以便在应用程序启动时运行此代码(无限循环线程)块

class Poller
 class << self
  def poll
    begin 
      ----polling logic for queue
      sleep(1.minute)
    end while(true)
  end

 end
end
类轮询器

类您可以从初始值设定项调用poll方法并执行代码


只需在initializers和call poll方法中创建一个.rb文件。

我已经更新了我的问题,希望现在在Rails生产系统上更好,通常每个服务器有多个服务器进程或线程,有时甚至有多个服务器。您是想为所有人启动一个
轮询器
,还是每个人启动一个
轮询器
?当出现问题时,您计划如何通过重新启动web服务器进程来重新启动轮询器?启动在每分钟运行一次的Cron作业中只轮询一次的
轮询器
是一个选项吗?我想这更容易设置,更容易管理,更可靠。每台服务器都有一个轮询器。我如何让上面的类在服务器启动时开始执行轮询方法?它应该通过我现有的rails应用程序进行,而不是通过任何其他方式。如果我将文件保存在Initializer文件夹下,rails会使用轮询方法吗?