Class: JIJI::ProcessInfo
- Inherits:
-
Object
- Object
- JIJI::ProcessInfo
- Defined in:
- lib/jiji/process.rb
Overview
プロセス情報
Constant Summary collapse
- PROPERTY_FILE =
"props.yaml"
Instance Attribute Summary collapse
-
#process_id ⇒ Object
ID.
-
#progress ⇒ Object
進捗状況.
-
#props ⇒ Object
プロパティ.
Instance Method Summary collapse
- #[](k) ⇒ Object
- #[]=(k, v) ⇒ Object
-
#data_exist? ⇒ Boolean
データが存在するか評価する.
-
#initialize(process_id, process_dir) ⇒ ProcessInfo
constructor
コンストラクタ.
-
#load ⇒ Object
設定をロードする.
-
#load_agents(agent_manager, agent_registry, logger, ignore_error = false) ⇒ Object
- 設定情報を元にエージェントを作成し、agent_managerに登録する agent_manager
- エージェントマネージャ agent_registry
- エージェントレジストリ logger
- エージェントのロードでエラーになった場合のログの出力先 ignore_error
-
ロードエラーを例外として通知するかどうか。通知しない場合true.
-
#save ⇒ Object
設定を保存する.
Constructor Details
#initialize(process_id, process_dir) ⇒ ProcessInfo
コンストラクタ
148 149 150 151 152 153 154 |
# File 'lib/jiji/process.rb', line 148 def initialize( process_id, process_dir ) @process_id = process_id @process_dir = process_dir FileUtils.mkdir_p dir @progress = 0 @props = {} end |
Instance Attribute Details
#process_id ⇒ Object
ID
215 216 217 |
# File 'lib/jiji/process.rb', line 215 def process_id @process_id end |
#progress ⇒ Object
進捗状況
219 220 221 |
# File 'lib/jiji/process.rb', line 219 def progress @progress end |
#props ⇒ Object
プロパティ
217 218 219 |
# File 'lib/jiji/process.rb', line 217 def props @props end |
Instance Method Details
#[](k) ⇒ Object
186 187 188 |
# File 'lib/jiji/process.rb', line 186 def [](k) @props[k] end |
#[]=(k, v) ⇒ Object
182 183 184 185 |
# File 'lib/jiji/process.rb', line 182 def []=(k,v) @props[k] = v save end |
#data_exist? ⇒ Boolean
データが存在するか評価する
157 158 159 |
# File 'lib/jiji/process.rb', line 157 def data_exist? File.exist? prop_file end |
#load ⇒ Object
設定をロードする
172 173 174 175 176 177 178 179 180 |
# File 'lib/jiji/process.rb', line 172 def load # 保存したファイルがあれば、ファイルから設定値を読み込む file = prop_file lock { if ( File.exist? file ) @props = YAML.load_file file end } end |
#load_agents(agent_manager, agent_registry, logger, ignore_error = false) ⇒ Object
設定情報を元にエージェントを作成し、agent_managerに登録する
- agent_manager
-
エージェントマネージャ
- agent_registry
-
エージェントレジストリ
- logger
-
エージェントのロードでエラーになった場合のログの出力先
- ignore_error
-
ロードエラーを例外として通知するかどうか。通知しない場合true
199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
# File 'lib/jiji/process.rb', line 199 def load_agents( agent_manager, agent_registry, logger, ignore_error=false ) agent_manager.clear return if !@props || !@props.key?("agents") @props["agents"].each {|v| begin agent = agent_registry.create( v["class"], v["properties"] ) agent_manager.add( v["id"], agent, v["name"] ) rescue Exception logger.warn " failed to create agent. name=#{v["name"]} id=#{v["id"]}" logger.warn $! raise $! unless ignore_error end } end |
#save ⇒ Object
設定を保存する
162 163 164 165 166 167 168 169 |
# File 'lib/jiji/process.rb', line 162 def save file = prop_file lock { File.open( file, "w" ) { |f| f.write( YAML.dump(@props) ) } } end |