rbatch 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -83,3 +83,10 @@ version 2
83
83
  * add option. "conf_dir", "common_conf_name", and "cmd_timeout" are added.
84
84
  * when cmd_timeout occured, RBatch kill child process now.
85
85
  * change test code from Test::Unit to RSpec.
86
+
87
+ 2.1.0 (2013/1/10)
88
+ ----
89
+ * add error handling when key class mistake Symbol for String
90
+ * add auto library file reading
91
+ * add mix_rbatch_msg_to_log option
92
+ * change config reading timing. before ondemand, now initial.
data/README.ja.md CHANGED
@@ -9,12 +9,13 @@ RBatchについて (version 2)
9
9
  これはRubyで書かれたシンプルなバッチスクリプトのフレームワークです。
10
10
  バッチスクリプト(バックアップやプロセスリロード等)を書く際に便利な機能をフレームワークとして提供しています。
11
11
 
12
- 主な機能は以下のとおり。
12
+ 主な機能は以下のとおり。
13
13
 
14
14
  * 自動ログ出力
15
+ * 自動ライブラリ読み込み
15
16
  * 自動メール送信
16
17
  * 自動設定ファイル読み込み
17
- * 外部コマンド実行
18
+ * 外部コマンド実行
18
19
  * 二重起動チェック
19
20
 
20
21
  注意:このフレームワークはRuby 1.9で動作します。
@@ -34,41 +35,43 @@ RBatchについて (version 2)
34
35
 
35
36
  ### RBatchホームディレクトリ
36
37
 
37
- 環境変数${RB_HOME}を定義する事で、その場所をRBatchのホームディレクトリに固定することができます。
38
+ 環境変数`${RB_HOME}`を定義する事で、その場所をRBatchのホームディレクトリに固定することができます。
38
39
 
39
- 環境変数${RB_HOME}を定義していない場合は、「実行するスクリプトが配置されているディレクトリの親ディレクトリ」が${RB_HOME}になります。言い換えると${RB_HOME}のデフォルト値は"(実行するスクリプトのパス)/../"です。
40
+ 環境変数`${RB_HOME}`を定義していない場合は、「実行するスクリプトが配置されているディレクトリの親ディレクトリ」が${RB_HOME}になります。言い換えると`${RB_HOME}`のデフォルト値は`(スクリプトのパス)/../`です。
40
41
 
41
42
  ### ディレクトリ構成と命名規則
42
43
 
43
44
  RBatchでは、実行スクリプト、設定ファイルおよびログファイルについて、
44
45
  配置場所および命名規則が規約で決まっています。
45
46
 
46
- 具体的には、"${RB_HOME}/bin/hoge.rb"というスクリプトでは、"${RB_HOME}/conf/hoge.yaml"という設定ファイルを読み、"${RB_HOME}/log/YYYYMMDD_HHMMSS_hoge.rb"というログを出力するという規則です。
47
+ 具体的には、`${RB_HOME}/bin/hoge.rb`というスクリプトでは、`${RB_HOME}/lib/*.rb`にあるライブラリをロードし、`${RB_HOME}/conf/hoge.yaml`という設定ファイルを読み、`${RB_HOME}/log/YYYYMMDD_HHMMSS_hoge.rb`というログを出力するという規則です。
47
48
 
48
49
  例を示すと以下の通りです。
49
50
 
50
- ```
51
- ${RB_HOME} ←RBatchホームディレクトリ
52
- |
53
- |-.rbatchrc ←Run-Conf
54
- |
55
- |-bin ←実行スクリプト配置場所
56
- | |- A.rb
57
- | |- B.rb
58
- |
59
- |-conf ←設定ファイル配置場所
60
- | |- A.yaml
61
- | |- B.yaml
62
- |
63
- |-log ←ログ出力場所
64
- |- YYYYMMDD_HHMMSS_A.log
65
- |- YYYYMMDD_HHMMSS_B.log
66
- ```
51
+ ${RB_HOME} ←RBatchホームディレクトリ
52
+ |
53
+ |-.rbatchrc ←Run-Conf
54
+ |
55
+ |-bin ←実行スクリプト配置場所
56
+ | |- A.rb
57
+ | |- B.rb
58
+ |
59
+ |-conf ←設定ファイル配置場所
60
+ | |- A.yaml
61
+ | |- B.yaml
62
+ |
63
+ |-log ←ログ出力場所
64
+ | |- YYYYMMDD_HHMMSS_A.log
65
+ | |- YYYYMMDD_HHMMSS_B.log
66
+ |
67
+ |-lib ←ライブラリ配置場所
68
+ |- lib_X.rb
69
+ |- lib_Y.rb
67
70
 
68
71
  ### 自動ログ出力
69
72
 
70
73
  Logging blockを使うことで、自動的にログファイルに出力することができます。
71
- ログファイルはデフォルトで"${RB_HOME}/log/YYYYMMDD_HHMMSS_${PROG_NAME}.log"に出力されます。
74
+ ログファイルはデフォルトで`${RB_HOME}/log/YYYYMMDD_HHMMSS_(スクリプトのbasename).log`に出力されます。
72
75
  例外が発生した場合でも、ログにスタックトレースを出力することができます。
73
76
 
74
77
  サンプル
@@ -97,14 +100,18 @@ RBatch::Log.new(){ |log| # Logging block
97
100
  [backtrace] test.rb:3:in `<main>'
98
101
  ```
99
102
 
103
+ ### 自動ライブラリ読み込み
104
+
105
+ `${RB_HOME}/lib/*.rb`にライブラリファイルを配置すると、スクリプトが起動する前に自動的に読み込まれます。
106
+
100
107
  ### 自動メール送信
101
108
 
102
- "log_send_mail"オプションを使う事により、スクリプトでエラーが発生した場合に、自動でメールを送信することができます。
109
+ `log_send_mail`オプションを使う事により、スクリプトでエラーが発生した場合に、自動でメールを送信することができます。
103
110
 
104
111
  ### 自動設定ファイル読み込み
105
112
 
106
113
  RBatchは簡単にデフォルトの位置の設定ファイルを読み込めます。
107
- デフォルトの位置は"${RB_HOME}/conf/(プログラムbase名).yaml"です。
114
+ デフォルトの位置は`${RB_HOME}/conf/(プログラムbasename).yaml`です。
108
115
 
109
116
  サンプル
110
117
 
@@ -130,7 +137,7 @@ p RBatch::config["not_exist"]
130
137
  => Raise Exception
131
138
  ```
132
139
 
133
- すべてのスクリプトから共通で読み込む設定ファイルを作りたい場合は、${RB_HOME}/conf/common.yamlというファイルを作ることで可能です。
140
+ すべてのスクリプトから共通で読み込む設定ファイルを作りたい場合は、`${RB_HOME}/conf/common.yaml`というファイルを作ることで可能です。
134
141
 
135
142
  ### 外部コマンド実行
136
143
 
@@ -150,29 +157,25 @@ p r.status
150
157
  => 0
151
158
  ```
152
159
 
160
+ 外部コマンドにタイムアウトを設定したい場合は`cmd_timeout`をオプションを利用できます。
161
+
153
162
  ### 二重起動チェック
154
163
 
155
- RBatchの共通設定ファイルに"forbid_double_run: true"の設定を書けば、RBatchを利用したプログラムの二重起動チェックができます。
164
+ `forbid_double_run`のオプションを利用すれば、RBatchを利用したプログラムの二重起動チェックができます。
156
165
 
157
166
  カスタマイズ
158
167
  --------------
159
168
 
160
169
  RBatchではオプションの指定の仕方は以下の二つがあります。
161
170
 
162
- (1) Run-Conf(${RB_HOME}/.rbatchrc)に書く
163
- (2) スクリプト内でオプションオブジェクトをコンストラクタの引数に渡す
171
+ * (1) Run-Conf(`${RB_HOME}/.rbatchrc`)に書く
172
+ * (2) スクリプト内でオプションオブジェクトをコンストラクタの引数に渡す
164
173
 
165
174
  同じオプションを(1)と(2)の両方で指定すると、(2)が優先されます。
166
175
 
167
176
  ### Run-Conf(.rbatchrc)によるカスタマイズ
168
177
 
169
- 以下の場所にRBatch全体設定ファイルを配置すると、全てのスクリプトにてオプションが適用されます。
170
-
171
-
172
- ${RB_HOME}/.rbatchrc
173
-
174
-
175
- 設定ファイルのサンプルは以下の通り
178
+ Run-Conf(`${RB_HOME}/.rbatchrc`)のサンプルは以下の通り
176
179
 
177
180
  ```
178
181
  # RBatch Run-Conf (.rbatchrc)
@@ -184,10 +187,9 @@ RBatchではオプションの指定の仕方は以下の二つがあります
184
187
  # 全体
185
188
  # -------------------
186
189
 
187
- # Conf ディレクトリ
190
+ # 設定ファイルディレクトリ
188
191
  #
189
192
  # デフォルトは "<home>/conf"
190
- #
191
193
  # <home> は ${RB_HOME} に置き換わります
192
194
  #
193
195
  #conf_dir: <home>/config
@@ -199,10 +201,25 @@ RBatchではオプションの指定の仕方は以下の二つがあります
199
201
  #
200
202
  #common_conf_name: share.yaml
201
203
 
204
+ # ライブラリディレクトリ
205
+ #
206
+ # デフォルトは"<home>/lib"
207
+ # <home> は${RB_HOME}に置き換わります
208
+ #
209
+ #lib_dir: /usr/local/lib/rbatch/
210
+
211
+ # 自動ライブラリ読み込み
212
+ #
213
+ # デフォルトはtrue
214
+ # trueの場合、スクリプトが始まる前に"(ライブラリディレクトリ)/*.rb"をrequireします
215
+ #
216
+ #auto_lib_load: true
217
+ #auto_lib_load: false
218
+
202
219
  # スクリプトの二重起動を可能にするかどうか
203
220
  #
204
221
  # デフォルト値はfalse。
205
- # trueにすると、同じスクリプトは二つ同時に起動できなくなります。
222
+ # trueにすると、同じ名前のスクリプトは二つ同時に起動できなくなります。
206
223
  #
207
224
  #forbid_double_run: true
208
225
  #forbid_double_run: false
@@ -232,7 +249,6 @@ RBatchではオプションの指定の仕方は以下の二つがあります
232
249
  # ログディレクトリ
233
250
  #
234
251
  # デフォルトは "<home>/log"
235
- #
236
252
  # <home> は ${RB_HOME} に置き換わります
237
253
  #
238
254
  #log_dir: <home>/rb_log
@@ -241,7 +257,6 @@ RBatchではオプションの指定の仕方は以下の二つがあります
241
257
  # ログファイル名
242
258
  #
243
259
  # デフォルト値は"<date>_<time>_<prog>.log"。
244
- # 以下の文字列は予約語
245
260
  # <data> はYYYYMMDDの日付形式に置換されます
246
261
  # <time> はhhmmssの時刻形式に置換されます
247
262
  # <prog> は拡張子を除いたファイル名に置換されます
@@ -282,8 +297,6 @@ RBatchではオプションの指定の仕方は以下の二つがあります
282
297
  # 削除対象のログは、そのRBatch::Logのインスタンスが出力するログファイルと
283
298
  # 同じファイル名フォーマットであり、かつログファイル名のフォーマットに<date>が
284
299
  # 含まれるもの。
285
- # 例えば、RBatch::Logで出力するログファイルが「20120105_hoge.log」だった場合、
286
- # 削除対象のログは「YYYYMMDD_hoge.log」のログとなる。
287
300
  #
288
301
  #log_delete_old_log: true
289
302
  #log_delete_old_log: false
@@ -308,13 +321,23 @@ RBatchではオプションの指定の仕方は以下の二つがあります
308
321
  #log_mail_server_host : "localhost"
309
322
  #log_mail_server_port : 25
310
323
 
324
+ # RBatchメッセージをログに出力
325
+ #
326
+ # デフォルトは true。
327
+ # trueを指定すると、RBatchメッセージをその時開かれているログに書き込む。
328
+ # RBatchメッセージの例
329
+ # [RBatch] Load Config : "../conf/hoge.yaml"
330
+ #
331
+ #mix_rbatch_msg_to_log : true
332
+ #mix_rbatch_msg_to_log : false
333
+
311
334
  ```
312
335
 
313
336
  ### コンストラクタの引数によるオプション指定
314
337
 
315
- スクリプト内で一時的にオプションを指定したい場合は、コンストラクタの引数にオプションのハッシュを指定します。
338
+ スクリプト内で一時的にオプションを指定したい場合は、RBatch::LogクラスもしくはRBatch::Cmdクラスのコンストラクタの引数にオプションのハッシュを指定します。
316
339
 
317
- #### RBatch::Logクラス
340
+ #### RBatch::Logクラスのオプション
318
341
 
319
342
  opt = {
320
343
  :name => "<date>_<time>_<prog>.log",
@@ -333,7 +356,7 @@ RBatchではオプションの指定の仕方は以下の二つがあります
333
356
 
334
357
  RBatch::Log.new(opt)
335
358
 
336
- #### RBatch::Cmdクラス
359
+ #### RBatch::Cmdクラスのオプション
337
360
 
338
361
  opt = {
339
362
  :raise => false,
@@ -345,4 +368,4 @@ RBatchではオプションの指定の仕方は以下の二つがあります
345
368
  version 1 から 2 へのマイグレーション
346
369
  --------------
347
370
 
348
- "${RB_HOME}/conf/rbatch.yaml""${RB_HOME}/.rbatchrc" に移動してください。
371
+ `${RB_HOME}/conf/rbatch.yaml``${RB_HOME}/.rbatchrc` に移動してください。