executer 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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