【问题标题】:I have a rpc server, how can I periodically do something too我有一个 rpc 服务器,我怎么能定期做一些事情呢
【发布时间】:2015-10-23 05:44:20
【问题描述】:
require 'jimson'
require 'ParseConfig'


class NodeHandler
  extend Jimson::Handler 

  def sum(a,b)
    a + b
    puts a+b
  end
end



server = Jimson::Server.new(NodeHandler.new, 
     :host =>  '127.0.0.1',
     :port =>  8888)
server.start # serve with webrick on http://0.0.0.0:8888/

# def foo(a,b)
   ...
#  end
###I want to call this function each 5s for exmaple

我有一个像上面这样的 RPC 服务器。现在真的很简单,提供求和功能。 我还需要逻辑,例如每 10 秒,我调用一些名为 foo() 的函数。 但是现在,该服务器启动并等待 RPC 客户端消息。期刊功能怎么做?

谢谢

【问题讨论】:

    标签: ruby multithreading server rpc


    【解决方案1】:

    好的,我会回答我自己的问题。 我发现有一个“作品”宝石可以解决我的问题。 我将服务器作业委托给另一个线程。 通过这样做,我可以使用主线程来做我想做的任何事情。

    所以我做了这样的事情:

    # Initialize a worker pool.
    pool = Workers::Pool.new(:on_exception => proc { |e|
      puts "A worker encountered an exception: #{e.class}: #{e.message}"
    })
    
    pool.perform do
      server = Jimson::Server.new(NodeHandler.new, 
         :host =>  '127.0.0.1',
         :port =>  port)
      server.start # serve with webrick on http://0.0.0.0:8999/
    end
    

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多