executer 0.1.0 → 0.1.1

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.
@@ -1,2 +1,2 @@
1
1
  redis: localhost:6379
2
- log: /var/log/executer.log
2
+ log: executer.log
@@ -6,7 +6,7 @@ $:.unshift lib unless $:.include?(lib)
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "executer"
9
- s.version = '0.1.0'
9
+ s.version = '0.1.1'
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.authors = ["Tung Nguyen"]
12
12
  s.email = ["tongueroo@gmail.com"]
@@ -28,14 +28,17 @@ class Executer
28
28
  begin
29
29
  while true
30
30
  if request = redis.lpop('executer:request')
31
- Timeout.timeout(60*60) do
32
- request = Yajl::Parser.parse(request)
33
- log("Running #{request.inspect}")
34
- system(request['cmd'])
35
- redis.publish(
36
- "executer:response:#{request['id']}",
37
- "finished"
38
- )
31
+ Thread.new do
32
+ Timeout.timeout(60*60) do
33
+ request = Yajl::Parser.parse(request)
34
+ log("Running #{request.inspect}")
35
+ id = request['id']
36
+ success = system(request['cmd'])
37
+ redis.publish(
38
+ "executer:response:#{id}",
39
+ success.to_s
40
+ )
41
+ end
39
42
  end
40
43
  end
41
44
 
@@ -20,6 +20,7 @@ class Executer
20
20
  id = options[:id]
21
21
  options = Yajl::Encoder.encode(options)
22
22
 
23
+ success = nil
23
24
  Timeout.timeout(60*60) do
24
25
  @redis_1.subscribe("executer:response:#{id}") do |on|
25
26
  on.subscribe do |channel, subscriptions|
@@ -28,14 +29,13 @@ class Executer
28
29
  end
29
30
 
30
31
  on.message do |channel, message|
32
+ success = message
31
33
  log("Finished: #{message.inspect}")
32
- if message == 'finished'
33
- @redis_1.unsubscribe
34
- end
34
+ @redis_1.unsubscribe
35
35
  end
36
36
  end
37
37
  end
38
- true
38
+ success
39
39
  end
40
40
 
41
41
  def log(message)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: executer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-29 00:00:00.000000000 -08:00
12
+ date: 2011-12-31 00:00:00.000000000 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &70226755250660 !ruby/object:Gem::Requirement
17
+ requirement: &70248834965420 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '1.0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70226755250660
25
+ version_requirements: *70248834965420
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: redis
28
- requirement: &70226755250140 !ruby/object:Gem::Requirement
28
+ requirement: &70248834964800 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 2.2.2
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70226755250140
36
+ version_requirements: *70248834964800
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: yajl-ruby
39
- requirement: &70226755249640 !ruby/object:Gem::Requirement
39
+ requirement: &70248834964180 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: 1.0.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70226755249640
47
+ version_requirements: *70248834964180
48
48
  description: ''
49
49
  email:
50
50
  - tongueroo@gmail.com