pwrake 2.2.1 → 2.2.2
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.
- checksums.yaml +4 -4
- data/lib/pwrake/branch/communicator.rb +1 -1
- data/lib/pwrake/branch/shell.rb +2 -0
- data/lib/pwrake/master/master.rb +4 -2
- data/lib/pwrake/master/master_application.rb +37 -4
- data/lib/pwrake/option/host_map.rb +21 -0
- data/lib/pwrake/option/option.rb +15 -1
- data/lib/pwrake/queue/queue_array.rb +34 -20
- data/lib/pwrake/queue/task_queue.rb +1 -4
- data/lib/pwrake/task/task_algorithm.rb +5 -1
- data/lib/pwrake/task/task_manager.rb +50 -1
- data/lib/pwrake/task/task_property.rb +21 -8
- data/lib/pwrake/task/task_wrapper.rb +24 -9
- data/lib/pwrake/version.rb +1 -1
- data/lib/pwrake/worker/gfarm_directory.rb +4 -2
- data/lib/pwrake/worker/log_executor.rb +2 -1
- data/lib/pwrake/worker/worker_main.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 700155f122d51b4ae814349492054d336daa6dad
|
4
|
+
data.tar.gz: 8bd23134b9c79784b95670440c0e823f139b41e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca62080f1e262829e1da0623c474d0415bdda728498bea11a25f8b17d2a3d60ecf8ebb701ab4eb160f8a894840e402477f2daf87335103aefa42bf89a021d1b5
|
7
|
+
data.tar.gz: ad190406c5a890f78e3691cac5bed219e537ac911617fe4cb1d68ce6d6cbd65c9963e0fa5bd8e328aad864e6303bef893bd5877afefcd2e85402d6864759f8ee
|
data/lib/pwrake/branch/shell.rb
CHANGED
@@ -229,6 +229,7 @@ module Pwrake
|
|
229
229
|
task = Rake.application[task_name]
|
230
230
|
@ncore = task.wrapper.n_used_cores
|
231
231
|
begin
|
232
|
+
Rake.application.current_flow[Fiber.current] = task.property.subflow
|
232
233
|
task.execute(task.arguments) if task.needed?
|
233
234
|
result = "taskend:#{@id}:#{task.name}"
|
234
235
|
rescue Exception=>e
|
@@ -237,6 +238,7 @@ module Pwrake
|
|
237
238
|
result = "taskfail:#{@id}:#{task.name}"
|
238
239
|
break if @exited
|
239
240
|
ensure
|
241
|
+
Rake.application.current_flow[Fiber.current] = nil
|
240
242
|
master_w.put_line result
|
241
243
|
end
|
242
244
|
end
|
data/lib/pwrake/master/master.rb
CHANGED
@@ -17,6 +17,7 @@ module Pwrake
|
|
17
17
|
@channel_by_hostid = {}
|
18
18
|
@channels = []
|
19
19
|
@hostinfo_by_id = {}
|
20
|
+
@current_flow = {}
|
20
21
|
# init
|
21
22
|
@option = Option.new
|
22
23
|
Log.set_logger(@option)
|
@@ -31,6 +32,7 @@ module Pwrake
|
|
31
32
|
attr_reader :task_queue
|
32
33
|
attr_reader :option
|
33
34
|
attr_reader :thread
|
35
|
+
attr_reader :current_flow # current_flow[Fiber.current] = task.property.subflow
|
34
36
|
|
35
37
|
def setup_branch_handler(sub_host)
|
36
38
|
ior,w0 = IO.pipe
|
@@ -331,7 +333,7 @@ module Pwrake
|
|
331
333
|
Fiber.new do
|
332
334
|
j = i
|
333
335
|
while tw = pool.deq()
|
334
|
-
Log.debug "postproc##{j} deq=#{tw.name}"
|
336
|
+
#Log.debug "postproc##{j} deq=#{tw.name}"
|
335
337
|
tw.postprocess(postproc)
|
336
338
|
pool.count_down
|
337
339
|
@hostinfo_by_taskname.delete(tw.name)
|
@@ -339,7 +341,7 @@ module Pwrake
|
|
339
341
|
break if yield(pool,j)
|
340
342
|
end
|
341
343
|
postproc.close
|
342
|
-
Log.debug "postproc##{j} end"
|
344
|
+
#Log.debug "postproc##{j} end"
|
343
345
|
end
|
344
346
|
end
|
345
347
|
end
|
@@ -13,6 +13,10 @@ module Pwrake
|
|
13
13
|
@role.task_queue
|
14
14
|
end
|
15
15
|
|
16
|
+
def current_flow
|
17
|
+
@role.current_flow
|
18
|
+
end
|
19
|
+
|
16
20
|
# Run the Pwrake application.
|
17
21
|
def run
|
18
22
|
standard_exception_handling do
|
@@ -46,10 +50,33 @@ module Pwrake
|
|
46
50
|
end
|
47
51
|
end
|
48
52
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
+
# Find the rakefile and then load it and any pending imports.
|
54
|
+
def load_rakefile
|
55
|
+
if subdirs = pwrake_options['SUBDIR']
|
56
|
+
subdirs.each do |x|
|
57
|
+
begin
|
58
|
+
Rake.application.current_flow[Fiber.current] = x
|
59
|
+
super
|
60
|
+
ensure
|
61
|
+
Rake.application.current_flow[Fiber.current] = nil
|
62
|
+
end
|
63
|
+
end
|
64
|
+
else
|
65
|
+
super
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def find_rakefile_location # :nodoc:
|
70
|
+
if subdir = Rake.application.current_flow[Fiber.current]
|
71
|
+
Dir.chdir(subdir)
|
72
|
+
if fn = have_rakefile
|
73
|
+
[File.join(subdir,fn), Rake.original_dir]
|
74
|
+
end
|
75
|
+
else
|
76
|
+
super
|
77
|
+
end
|
78
|
+
ensure
|
79
|
+
Dir.chdir(Rake.original_dir)
|
53
80
|
end
|
54
81
|
|
55
82
|
def invoke(t,*args)
|
@@ -138,6 +165,12 @@ module Pwrake
|
|
138
165
|
"[Pw] Pwrake configuation file in YAML",
|
139
166
|
lambda {|value| options.pwrake_conf = value}
|
140
167
|
],
|
168
|
+
['--subdir "dir1 dir2 ..."',
|
169
|
+
"[Pw] Join workflows in subdirectories",
|
170
|
+
lambda { |value|
|
171
|
+
options.subdir = value.split(/[\s,;:]+/)
|
172
|
+
}
|
173
|
+
],
|
141
174
|
['--show-conf','--show-config',
|
142
175
|
"[Pw] Show Pwrake configuration options",
|
143
176
|
lambda {|value| options.show_conf = true }
|
@@ -86,6 +86,27 @@ module Pwrake
|
|
86
86
|
end
|
87
87
|
@continuous_fail
|
88
88
|
end
|
89
|
+
|
90
|
+
def accept_core(task_name, use_cores)
|
91
|
+
if @reserved_task
|
92
|
+
if @reserved_task == task_name
|
93
|
+
if use_cores <= @idle_cores
|
94
|
+
Log.info "use reserved: #{@name} for #{task_name} (#{use_cores} cores)"
|
95
|
+
@reserved_task = nil
|
96
|
+
return :ok
|
97
|
+
end
|
98
|
+
end
|
99
|
+
else
|
100
|
+
if use_cores <= @idle_cores
|
101
|
+
return :ok
|
102
|
+
elsif use_cores > 1
|
103
|
+
@reserved_task = task_name
|
104
|
+
Log.info "reserve host: #{@name} for #{task_name} (#{use_cores} cores)"
|
105
|
+
return :reserve
|
106
|
+
end
|
107
|
+
end
|
108
|
+
:busy
|
109
|
+
end
|
89
110
|
end
|
90
111
|
|
91
112
|
class HostMap < Hash
|
data/lib/pwrake/option/option.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "pathname"
|
2
2
|
require "yaml"
|
3
|
+
require "socket"
|
3
4
|
require "parallel"
|
4
5
|
require "pwrake/option/host_map"
|
5
6
|
|
@@ -144,6 +145,19 @@ module Pwrake
|
|
144
145
|
'DEBUG',
|
145
146
|
'PLOT_PARALLELISM',
|
146
147
|
'SHOW_CONF',
|
148
|
+
['SUBDIR','SUBDIRS',
|
149
|
+
proc{|v|
|
150
|
+
if Array===v
|
151
|
+
v.each do |d|
|
152
|
+
if !File.directory?(d)
|
153
|
+
raise "directory #{d.inspect} does not exist"
|
154
|
+
end
|
155
|
+
end
|
156
|
+
elsif !v.nil?
|
157
|
+
raise "invalid argument for SUBDIR: #{v.inspect}"
|
158
|
+
end
|
159
|
+
}
|
160
|
+
],
|
147
161
|
['REPORT_DIR','REPORT'],
|
148
162
|
'REPORT_IMAGE',
|
149
163
|
'FAILED_TARGET', # rename(default), delete, leave
|
@@ -207,7 +221,7 @@ module Pwrake
|
|
207
221
|
['SHELL_START_INTERVAL', proc{|v| (v || 0.012).to_f}],
|
208
222
|
['HEARTBEAT', proc{|v| (v || 240).to_i}],
|
209
223
|
['RETRY', proc{|v| (v || 1).to_i}],
|
210
|
-
['MASTER_HOSTNAME', proc{|v| (v ||
|
224
|
+
['MASTER_HOSTNAME', proc{|v| (v || Socket.gethostname).chomp}],
|
211
225
|
['WORK_DIR', proc{|v|
|
212
226
|
v ||= '%CWD_RELATIVE_TO_HOME'
|
213
227
|
v.sub('%CWD_RELATIVE_TO_HOME',cwd_relative_if_under_home)
|
@@ -68,18 +68,22 @@ module Pwrake
|
|
68
68
|
|
69
69
|
def shift(host_info=nil)
|
70
70
|
return super() unless host_info
|
71
|
-
|
71
|
+
i_tried = []
|
72
72
|
(size-1).downto(0) do |i|
|
73
|
+
tw = at(i)
|
74
|
+
if tw.tried_host?(host_info)
|
75
|
+
i_tried << i
|
76
|
+
elsif tw.acceptable_for(host_info)
|
77
|
+
return delete_at(i)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
i_tried.each do |i|
|
73
81
|
tw = at(i)
|
74
82
|
if tw.acceptable_for(host_info)
|
75
|
-
|
76
|
-
return delete_at(i)
|
77
|
-
else
|
78
|
-
i_found ||= i
|
79
|
-
end
|
83
|
+
return delete_at(i)
|
80
84
|
end
|
81
85
|
end
|
82
|
-
|
86
|
+
nil
|
83
87
|
end
|
84
88
|
end
|
85
89
|
|
@@ -90,18 +94,22 @@ module Pwrake
|
|
90
94
|
|
91
95
|
def shift(host_info=nil)
|
92
96
|
return super() unless host_info
|
93
|
-
|
97
|
+
i_tried = []
|
94
98
|
size.times do |i|
|
99
|
+
tw = at(i)
|
100
|
+
if tw.tried_host?(host_info)
|
101
|
+
i_tried << i
|
102
|
+
elsif tw.acceptable_for(host_info)
|
103
|
+
return delete_at(i)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
i_tried.each do |i|
|
95
107
|
tw = at(i)
|
96
108
|
if tw.acceptable_for(host_info)
|
97
|
-
|
98
|
-
return delete_at(i)
|
99
|
-
else
|
100
|
-
i_found ||= i
|
101
|
-
end
|
109
|
+
return delete_at(i)
|
102
110
|
end
|
103
111
|
end
|
104
|
-
|
112
|
+
nil
|
105
113
|
end
|
106
114
|
end
|
107
115
|
|
@@ -172,18 +180,24 @@ module Pwrake
|
|
172
180
|
end
|
173
181
|
|
174
182
|
def pop_last_rank(r,host_info)
|
175
|
-
|
183
|
+
i_tried = []
|
176
184
|
(size-1).downto(0) do |i|
|
177
185
|
tw = at(i)
|
178
|
-
if tw.rank == r
|
179
|
-
if tw.
|
186
|
+
if tw.rank == r
|
187
|
+
if tw.tried_host?(host_info)
|
188
|
+
i_tried << i
|
189
|
+
elsif tw.acceptable_for(host_info)
|
180
190
|
return delete_at(i)
|
181
|
-
else
|
182
|
-
i_found ||= i
|
183
191
|
end
|
184
192
|
end
|
185
193
|
end
|
186
|
-
|
194
|
+
i_tried.each do |i|
|
195
|
+
tw = at(i)
|
196
|
+
if tw.acceptable_for(host_info)
|
197
|
+
return delete_at(i)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
nil
|
187
201
|
end
|
188
202
|
|
189
203
|
def hrf_delete(t)
|
@@ -70,15 +70,12 @@ module Pwrake
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def deq_task(&block) # locality version
|
73
|
-
Log.debug "deq_task:"+(empty? ? " (empty)" : "\n#{inspect_q}")
|
73
|
+
Log.debug "deq_task from:"+(empty? ? " (empty)" : "\n#{inspect_q}")
|
74
74
|
queued = 0
|
75
75
|
@n_turn.times do |turn|
|
76
76
|
next if turn_empty?(turn)
|
77
77
|
queued += deq_turn(turn,&block)
|
78
78
|
end
|
79
|
-
if queued>0
|
80
|
-
Log.debug "deq_task: queued=#{queued}"
|
81
|
-
end
|
82
79
|
end
|
83
80
|
|
84
81
|
def deq_turn(turn,&block)
|
@@ -21,7 +21,17 @@ module Pwrake
|
|
21
21
|
prop = @last_property
|
22
22
|
@last_property = TaskProperty.new
|
23
23
|
end
|
24
|
-
|
24
|
+
if !@disable_subflow
|
25
|
+
@subflow_prefix = Rake.application.current_flow[Fiber.current]
|
26
|
+
end
|
27
|
+
task = super
|
28
|
+
task.pw_set_property(prop)
|
29
|
+
if !@disable_subflow
|
30
|
+
task.property.subflow = @subflow_prefix
|
31
|
+
end
|
32
|
+
task
|
33
|
+
ensure
|
34
|
+
@subflow_prefix = nil
|
25
35
|
end
|
26
36
|
|
27
37
|
def create_rule(*args, &block) # :nodoc:
|
@@ -30,5 +40,44 @@ module Pwrake
|
|
30
40
|
super
|
31
41
|
end
|
32
42
|
|
43
|
+
def resolve_args(args)
|
44
|
+
task_name, arg_names, deps = super(args)
|
45
|
+
if @subflow_prefix
|
46
|
+
# fix prerequisites
|
47
|
+
deps.map! do |task_name|
|
48
|
+
add_prefix(task_name)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
[task_name, arg_names, deps]
|
52
|
+
end
|
53
|
+
|
54
|
+
def intern(task_class, task_name)
|
55
|
+
if @subflow_prefix
|
56
|
+
base_name = task_name
|
57
|
+
# fix task name
|
58
|
+
task_name = add_prefix(task_name)
|
59
|
+
if base_name != task_name && task_class == Rake::Task
|
60
|
+
sbfl = @subflow_prefix
|
61
|
+
begin
|
62
|
+
@subflow_prefix = nil
|
63
|
+
@disable_subflow = true
|
64
|
+
Rake::Task.define_task(base_name => task_name)
|
65
|
+
ensure
|
66
|
+
@subflow_prefix = sbfl
|
67
|
+
@disable_subflow = false
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
super(task_class, task_name)
|
72
|
+
end
|
73
|
+
|
74
|
+
def add_prefix(task_name)
|
75
|
+
task_name = task_name.to_s
|
76
|
+
if /^\.?\.?\// =~ task_name
|
77
|
+
task_name
|
78
|
+
else
|
79
|
+
File.join(@subflow_prefix, task_name)
|
80
|
+
end
|
81
|
+
end
|
33
82
|
end
|
34
83
|
end
|
@@ -4,6 +4,7 @@ module Pwrake
|
|
4
4
|
|
5
5
|
attr_reader :ncore, :exclusive, :allow, :deny, :order_allow_deny,
|
6
6
|
:retry, :disable_steal
|
7
|
+
attr_accessor :subflow
|
7
8
|
|
8
9
|
def parse_description(description)
|
9
10
|
if /\bn_?cores?[=:]\s*([+-]?\d+)/i =~ description
|
@@ -38,19 +39,31 @@ module Pwrake
|
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
|
-
def
|
42
|
+
def merge(prop)
|
43
|
+
@ncore = prop.ncore if prop.ncore
|
44
|
+
@exclusive = prop.exclusive if prop.exclusive
|
45
|
+
@allow = prop.allow if prop.allow
|
46
|
+
@deny = prop.deny if prop.deny
|
47
|
+
@order_allow_deny = prop.order_allow_deny if prop.order_allow_deny
|
48
|
+
@retry = prop.retry if prop.retry
|
49
|
+
@disable_steal = prop.disable_steal if prop.disable_steal
|
50
|
+
@subflow = prop.subflow if prop.subflow
|
51
|
+
end
|
52
|
+
|
53
|
+
def use_cores(host_info)
|
54
|
+
nc = (@exclusive) ? 0 : (@ncore || 1)
|
55
|
+
if nc < 1
|
56
|
+
nc += host_info.ncore
|
57
|
+
end
|
58
|
+
return nc
|
59
|
+
end
|
60
|
+
|
61
|
+
def accept_host(host_info)
|
42
62
|
return true unless host_info
|
43
63
|
if @disable_steal && host_info.steal_flag
|
44
64
|
#Log.debug("@disable_steal && host_info.steal_flag")
|
45
65
|
return false
|
46
66
|
end
|
47
|
-
ncore = (@exclusive) ? 0 : (@ncore || 1)
|
48
|
-
if ncore > 0
|
49
|
-
return false if ncore > host_info.idle_cores
|
50
|
-
else
|
51
|
-
n = host_info.ncore + ncore
|
52
|
-
return false if n < 1 || n > host_info.idle_cores
|
53
|
-
end
|
54
67
|
hn = host_info.name
|
55
68
|
if @allow
|
56
69
|
if @deny
|
@@ -29,12 +29,11 @@ module Pwrake
|
|
29
29
|
@assigned = []
|
30
30
|
@exec_host = nil
|
31
31
|
@exec_host_id = nil
|
32
|
-
@tried_hosts =
|
32
|
+
@tried_hosts = {}
|
33
33
|
@n_retry = @property.retry || Rake.application.pwrake_options["RETRY"] || 1
|
34
34
|
end
|
35
35
|
|
36
36
|
def_delegators :@task, :name, :actions, :prerequisites, :subsequents
|
37
|
-
def_delegators :@property, :acceptable_for
|
38
37
|
|
39
38
|
attr_reader :task, :task_id, :group, :group_id, :file_stat
|
40
39
|
attr_reader :location
|
@@ -91,7 +90,7 @@ module Pwrake
|
|
91
90
|
end
|
92
91
|
|
93
92
|
def retry_or_subsequent
|
94
|
-
@tried_hosts
|
93
|
+
@tried_hosts[@exec_host] = true
|
95
94
|
if @status=="end"
|
96
95
|
@task.pw_enq_subsequents
|
97
96
|
elsif @n_retry > 0
|
@@ -102,7 +101,7 @@ module Pwrake
|
|
102
101
|
@n_retry -= 1
|
103
102
|
Rake.application.task_queue.enq(self)
|
104
103
|
else
|
105
|
-
s="give up retry (retry_count
|
104
|
+
s="give up retry (retry_count=#{@n_retry}): #{name}"
|
106
105
|
Log.error(s)
|
107
106
|
$stderr.puts(s)
|
108
107
|
end
|
@@ -171,7 +170,7 @@ module Pwrake
|
|
171
170
|
@@task_logger << row
|
172
171
|
#
|
173
172
|
clsname = @task.class.to_s.sub(/^(Rake|Pwrake)::/o,"")
|
174
|
-
msg = '%s
|
173
|
+
msg = '%s[%s] status=%s id=%d elap=%.6f exec_host=%s' %
|
175
174
|
[clsname,name,@status,@task_id,elap,@exec_host]
|
176
175
|
if @status=="end"
|
177
176
|
Log.info msg
|
@@ -266,7 +265,7 @@ module Pwrake
|
|
266
265
|
end
|
267
266
|
@rank = max_rank + step
|
268
267
|
end
|
269
|
-
Log.debug "Task[#{name}] rank=#{@rank.inspect}"
|
268
|
+
#Log.debug "Task[#{name}] rank=#{@rank.inspect}"
|
270
269
|
end
|
271
270
|
@rank
|
272
271
|
end
|
@@ -343,9 +342,25 @@ module Pwrake
|
|
343
342
|
@n_used_cores ||= @property.n_used_cores(host_info)
|
344
343
|
end
|
345
344
|
|
346
|
-
def
|
347
|
-
|
348
|
-
|
345
|
+
def acceptable_for(host_info)
|
346
|
+
unless @property.accept_host(host_info)
|
347
|
+
return false
|
348
|
+
end
|
349
|
+
use_cores = @property.use_cores(host_info)
|
350
|
+
if @reserved_host.nil? || @reserved_host == host_info
|
351
|
+
case host_info.accept_core(name,use_cores)
|
352
|
+
when :ok
|
353
|
+
@reserved_host = nil
|
354
|
+
return true
|
355
|
+
when :reserve
|
356
|
+
@reserved_host = host_info
|
357
|
+
end
|
358
|
+
end
|
359
|
+
false
|
360
|
+
end
|
361
|
+
|
362
|
+
def tried_host?(host_info)
|
363
|
+
host_info && @tried_hosts[host_info.name]
|
349
364
|
end
|
350
365
|
|
351
366
|
end
|
data/lib/pwrake/version.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "socket"
|
2
|
+
|
1
3
|
module Pwrake
|
2
4
|
|
3
5
|
class GfarmDirectory < SharedDirectory
|
@@ -8,7 +10,7 @@ module Pwrake
|
|
8
10
|
@@gfarm2fs_debug = nil
|
9
11
|
@@gfarm2fs_debug_wait = 1
|
10
12
|
@@current_id = 0
|
11
|
-
@@hostname =
|
13
|
+
@@hostname = Socket.gethostname
|
12
14
|
|
13
15
|
def self.init(opts)
|
14
16
|
@@prefix = opts[:base_dir]
|
@@ -57,7 +59,7 @@ module Pwrake
|
|
57
59
|
path = @log.path
|
58
60
|
begin
|
59
61
|
if @@gfarm2fs_debug && path
|
60
|
-
f = path+("gfarm2fs-"
|
62
|
+
f = path+("gfarm2fs-"+@@hostname+"-"+@suffix)
|
61
63
|
spawn_cmd "gfarm2fs #{@@gfarm2fs_option} -d #{@gfarm_mountpoint} > #{f} 2>&1 & sleep #{@@gfarm2fs_debug_wait}"
|
62
64
|
else
|
63
65
|
spawn_cmd "gfarm2fs #{@@gfarm2fs_option} #{@gfarm_mountpoint}"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "singleton"
|
2
2
|
require "forwardable"
|
3
3
|
require "logger"
|
4
|
+
require "socket"
|
4
5
|
|
5
6
|
module Pwrake
|
6
7
|
|
@@ -46,7 +47,7 @@ module Pwrake
|
|
46
47
|
@dir = dir_class.new
|
47
48
|
@dir.open
|
48
49
|
@path = @dir.log_path
|
49
|
-
fn = "worker-#{
|
50
|
+
fn = "worker-#{Socket.gethostname}-#{Process.pid}.log"
|
50
51
|
@logfile = (@path + fn).to_s
|
51
52
|
::FileUtils.mkdir_p(@path.to_s)
|
52
53
|
@logger = @logger_file = ::Logger.new(@logfile)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "thread"
|
2
2
|
require "fileutils"
|
3
3
|
require "timeout"
|
4
|
+
require "socket"
|
4
5
|
|
5
6
|
begin
|
6
7
|
Pwrake::Invoker.new.run
|
@@ -8,7 +9,7 @@ rescue => exc
|
|
8
9
|
log = Pwrake::LogExecutor.instance
|
9
10
|
log.error exc
|
10
11
|
log.error exc.backtrace.join("\n")
|
11
|
-
open("pwrake_worker_err-#{
|
12
|
+
open("pwrake_worker_err-#{Socket.gethostname}-#{Process.pid}","w") do |f|
|
12
13
|
f.puts exc
|
13
14
|
f.puts exc.backtrace.join("\n")
|
14
15
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pwrake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro TANAKA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|