rplex 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,5 @@
1
+ === 0.0.3 / 2012-02-24
2
+ * Added reset queue functionality
1
3
  === 0.0.2 / 2012-01-04
2
4
  * Added backlog delivering queue sizes
3
5
  === 0.0.1 / 2011-12-11
data/README.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  = rplex
2
2
 
3
- http://c11865-prj.zuehlke.com
3
+ https://github.com/damphyr/rplex
4
4
 
5
5
  == DESCRIPTION:
6
6
 
data/lib/rplex/client.rb CHANGED
@@ -30,6 +30,17 @@ module Rplex
30
30
  raise ClientError, $!.message
31
31
  end
32
32
 
33
+ def reset workers
34
+ if workers && !workers.empty?
35
+ response=RestClient.post(@service, {"workers"=>workers}, :content_type => :json, :accept => :json)
36
+ return JSON.parse(response)
37
+ else
38
+ return []
39
+ end
40
+ rescue
41
+ raise ClientError, $!.message
42
+ end
43
+
33
44
  def backlog
34
45
  response=RestClient.get(@service,:accept => :json)
35
46
  unless response.empty?
data/lib/rplex/jobs.rb CHANGED
@@ -48,5 +48,13 @@ module Rplex
48
48
  rescue
49
49
  false
50
50
  end
51
+ #All worker queue names
52
+ def workers
53
+ @queues.keys
54
+ end
55
+ #Empties the worker queues
56
+ def reset workers
57
+ workers.each{|worker| @queues[worker].clear if @queues[worker]}
58
+ end
51
59
  end
52
60
  end
data/lib/rplex/server.rb CHANGED
@@ -36,6 +36,17 @@ module Rplex
36
36
  [200,{'Content-Type' => 'application/json'},@overseer.backlog.to_json]
37
37
  end
38
38
 
39
+ post '/reset' do
40
+ begin
41
+ reply={}
42
+ workers= params["workers"] ? params["workers"] : @overseer.workers
43
+ @overseer.reset(workers)
44
+ [200,{'Content-Type' => 'application/json'},@overseer.backlog.to_json]
45
+ rescue
46
+ status 500
47
+ end
48
+ end
49
+
39
50
  def self.define_settings cfg={}
40
51
  cfg||={}
41
52
  #the settings that are not public
data/lib/rplex.rb CHANGED
@@ -2,7 +2,7 @@ module Rplex
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{TINY}"
7
7
  end
8
8
  end
data/test/test_jobs.rb CHANGED
@@ -34,4 +34,20 @@ class TestOverseer < Test::Unit::TestCase
34
34
  ov<<job_data
35
35
  assert_equal([['worker1',1],['worker2',1]], ov.backlog)
36
36
  end
37
+
38
+ def test_reset
39
+ ov=Rplex::Overseer.new
40
+ assert(ov.backlog.empty?)
41
+ jd1={"identifier"=>"8888","data"=>{:foo=>"bar",:bar=>"foo"}}
42
+ jd2={"identifier"=>"9999","data"=>{:foo=>"bar",:bar=>"foo"}}
43
+ ov['worker1']
44
+ ov['worker2']
45
+ ov<<jd1
46
+ ov<<jd2
47
+ assert_equal([['worker1',2],['worker2',2]], ov.backlog)
48
+ ov.reset(['worker2'])
49
+ assert_equal([['worker1',2],['worker2',0]], ov.backlog)
50
+ ov.reset(['worker1'])
51
+ assert_equal([['worker1',0],['worker2',0]], ov.backlog)
52
+ end
37
53
  end
data/test/test_server.rb CHANGED
@@ -39,4 +39,16 @@ class ServerTest < Test::Unit::TestCase
39
39
  get '/backlog'
40
40
  assert_equal(200, last_response.status)
41
41
  end
42
+
43
+ def test_reset
44
+ get '/job/worker'
45
+ payload={"identifier"=>"8888","data"=>{"url"=>"http://foo.bar/drops","revision"=>"8888"}}
46
+ post '/job', payload
47
+ post '/job', payload
48
+ get '/backlog'
49
+ assert_equal([["worker",2]], JSON.parse(last_response.body))
50
+ post '/reset',{"workers"=>['worker']}
51
+ get '/backlog'
52
+ assert_equal([["worker",0]], JSON.parse(last_response.body))
53
+ end
42
54
  end
metadata CHANGED
@@ -1,103 +1,79 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rplex
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Vassilis Rizopoulos
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-04 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-04-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: sinatra
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2153566880 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 25
29
- segments:
30
- - 1
31
- - 3
32
- - 1
20
+ - !ruby/object:Gem::Version
33
21
  version: 1.3.1
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rest-client
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2153566880
25
+ - !ruby/object:Gem::Dependency
26
+ name: rest-client
27
+ requirement: &2153565980 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
29
+ requirements:
42
30
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 1
45
- segments:
46
- - 1
47
- - 6
48
- - 7
31
+ - !ruby/object:Gem::Version
49
32
  version: 1.6.7
50
33
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: rdoc
54
34
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2153565980
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdoc
38
+ requirement: &2153565160 !ruby/object:Gem::Requirement
56
39
  none: false
57
- requirements:
40
+ requirements:
58
41
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 19
61
- segments:
62
- - 3
63
- - 10
64
- version: "3.10"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.10'
65
44
  type: :development
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: hoe
69
45
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2153565160
47
+ - !ruby/object:Gem::Dependency
48
+ name: hoe
49
+ requirement: &2153564380 !ruby/object:Gem::Requirement
71
50
  none: false
72
- requirements:
51
+ requirements:
73
52
  - - ~>
74
- - !ruby/object:Gem::Version
75
- hash: 27
76
- segments:
77
- - 2
78
- - 12
79
- version: "2.12"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.12'
80
55
  type: :development
81
- version_requirements: *id004
82
- description: |-
83
- http://c11865-prj.zuehlke.com
84
-
56
+ prerelease: false
57
+ version_requirements: *2153564380
58
+ description: ! 'https://github.com/damphyr/rplex
59
+
60
+
85
61
  == DESCRIPTION:
86
-
62
+
63
+
87
64
  Simple asynchronous data based job management
88
-
89
- == INSTALL:
90
- email:
65
+
66
+
67
+ == INSTALL:'
68
+ email:
91
69
  - var@zuehlke.com
92
70
  executables: []
93
-
94
71
  extensions: []
95
-
96
- extra_rdoc_files:
72
+ extra_rdoc_files:
97
73
  - History.txt
98
74
  - Manifest.txt
99
75
  - README.txt
100
- files:
76
+ files:
101
77
  - Gemfile
102
78
  - History.txt
103
79
  - lib/rplex.rb
@@ -113,39 +89,31 @@ files:
113
89
  - .gemtest
114
90
  homepage: http://github.com/damphyr/rplex
115
91
  licenses: []
116
-
117
92
  post_install_message:
118
- rdoc_options:
93
+ rdoc_options:
119
94
  - --main
120
95
  - README.txt
121
- require_paths:
96
+ require_paths:
122
97
  - lib
123
- required_ruby_version: !ruby/object:Gem::Requirement
98
+ required_ruby_version: !ruby/object:Gem::Requirement
124
99
  none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
132
- required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
105
  none: false
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- hash: 3
138
- segments:
139
- - 0
140
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
141
110
  requirements: []
142
-
143
111
  rubyforge_project: rplex
144
- rubygems_version: 1.8.6
112
+ rubygems_version: 1.8.12
145
113
  signing_key:
146
114
  specification_version: 3
147
115
  summary: rplex multiplexes jobs across multiple workers
148
- test_files:
116
+ test_files:
149
117
  - test/test_jobs.rb
150
118
  - test/test_rplex.rb
151
119
  - test/test_server.rb