Class: JIJI::Collector
- Inherits:
-
Object
- Object
- JIJI::Collector
- Defined in:
- lib/jiji/collector.rb
Overview
レート一覧を取得しオブザーバーに通知するクラス
-
設定値で指定された間隔でレート一覧を取得し、JIJI::ObserverManagerに通知する。
Direct Known Subclasses
Instance Attribute Summary collapse
-
#client ⇒ Object
証券会社アクセスクライアント.
-
#conf ⇒ Object
コンフィグレーション.
-
#error ⇒ Object
readonly
情報取得中に発生したエラー.
-
#listeners ⇒ Object
収集終了の通知を受けるリスナ。.
-
#logger ⇒ Object
ロガー.
-
#observer_manager ⇒ Object
JIJI::ObserverManager.
-
#wait_time ⇒ Object
待ち時間.
Instance Method Summary collapse
-
#initialize ⇒ Collector
constructor
コンストラクタ.
-
#progress ⇒ Object
進捗(%を示す整数)を取得する.
-
#start ⇒ Object
収集を開始する。.
-
#state ⇒ Object
- 状態を取得する。 戻り値
-
状態を示すシンボル。 :WAITING ..
-
#stop ⇒ Object
収集を停止する。 - サーバーが終了した際に呼び出される。 - JIJI::ObserverManagerの破棄も内部で行う。.
Constructor Details
#initialize ⇒ Collector
コンストラクタ
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/jiji/collector.rb', line 17 def initialize @alive = false @state_mutex = Mutex.new @end_mutex = Mutex.new @future = nil @state_mutex.synchronize { @state = :WAITING @listeners = [] } end |
Instance Attribute Details
#client ⇒ Object
証券会社アクセスクライアント
80 81 82 |
# File 'lib/jiji/collector.rb', line 80 def client @client end |
#conf ⇒ Object
コンフィグレーション
74 75 76 |
# File 'lib/jiji/collector.rb', line 74 def conf @conf end |
#error ⇒ Object (readonly)
情報取得中に発生したエラー
82 83 84 |
# File 'lib/jiji/collector.rb', line 82 def error @error end |
#listeners ⇒ Object
収集終了の通知を受けるリスナ。
85 86 87 |
# File 'lib/jiji/collector.rb', line 85 def listeners @listeners end |
#logger ⇒ Object
ロガー
78 79 80 |
# File 'lib/jiji/collector.rb', line 78 def logger @logger end |
#observer_manager ⇒ Object
JIJI::ObserverManager
76 77 78 |
# File 'lib/jiji/collector.rb', line 76 def observer_manager @observer_manager end |
#wait_time ⇒ Object
待ち時間
72 73 74 |
# File 'lib/jiji/collector.rb', line 72 def wait_time @wait_time end |
Instance Method Details
#progress ⇒ Object
進捗(%を示す整数)を取得する
55 56 57 |
# File 'lib/jiji/collector.rb', line 55 def progress 0 # リアルトレードでは常に0 end |
#start ⇒ Object
収集を開始する。
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/jiji/collector.rb', line 29 def start @state_mutex.synchronize { @state = :RUNNING } @end_mutex.synchronize { @alive = true @future = Thread.fork { start_collect :finished } } end |
#state ⇒ Object
65 66 67 68 69 |
# File 'lib/jiji/collector.rb', line 65 def state @state_mutex.synchronize { @state } end |
#stop ⇒ Object
収集を停止する。
-
サーバーが終了した際に呼び出される。
-
JIJI::ObserverManagerの破棄も内部で行う。
45 46 47 48 49 50 51 52 |
# File 'lib/jiji/collector.rb', line 45 def stop @end_mutex.synchronize { return unless @alive # 実行していない場合何もしない。 @alive = false } # スレッドの完了を待つ @future.value end |