Class: JIJI::Plugin::SingleClickClient
- Inherits:
-
Object
- Object
- JIJI::Plugin::SingleClickClient
- Includes:
- HTTPClient::Timeout
- Defined in:
- lib/jiji/plugin/embedded/single_click_client.rb
Overview
クリック証券へのアクセスを集約するためのサービス
Instance Attribute Summary collapse
-
#conf ⇒ Object
Returns the value of attribute conf.
-
#logger ⇒ Object
Returns the value of attribute logger.
Instance Method Summary collapse
-
#close ⇒ Object
サービスを破棄する。 不要になった場合、必ず実行すること。.
-
#initialize(conf, logger) ⇒ SingleClickClient
constructor
A new instance of SingleClickClient.
-
#request(&block) ⇒ Object
リクエストを送付する。 ブロックの第1引数としてセッションが渡される。.
Constructor Details
#initialize(conf, logger) ⇒ SingleClickClient
Returns a new instance of SingleClickClient.
30 31 32 33 34 |
# File 'lib/jiji/plugin/embedded/single_click_client.rb', line 30 def initialize( conf, logger ) @conf = conf @logger = logger @mutex = Mutex.new end |
Instance Attribute Details
#conf ⇒ Object
Returns the value of attribute conf.
75 76 77 |
# File 'lib/jiji/plugin/embedded/single_click_client.rb', line 75 def conf @conf end |
#logger ⇒ Object
Returns the value of attribute logger.
76 77 78 |
# File 'lib/jiji/plugin/embedded/single_click_client.rb', line 76 def logger @logger end |
Instance Method Details
#close ⇒ Object
サービスを破棄する。 不要になった場合、必ず実行すること。
71 72 73 74 |
# File 'lib/jiji/plugin/embedded/single_click_client.rb', line 71 def close @session.close if @session @logger.info "close single click client." end |
#request(&block) ⇒ Object
リクエストを送付する。 ブロックの第1引数としてセッションが渡される。
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/jiji/plugin/embedded/single_click_client.rb', line 38 def request( &block ) @mutex.synchronize { begin @session = create_session unless @session @session.request {|fx| timeout( conf[:timeout] || 60 ) { yield fx } } rescue Exception begin # セッション切れの場合、再作成して再実行してみる。 # それでもエラーになったらあきらめてエラーを返す。 if $!.to_s =~ /Out Of Session\./ @logger.info "restart single click client." @session.close @session = create_session @session.request( &block ) else raise $! end rescue Exception # エラーの場合、次回のリクエストもセッションを再作成する @session.close if @session @session = nil raise $! end end } end |