pegasus 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -5,8 +5,9 @@ module Pegasus
5
5
  extend Forwardable
6
6
  def_delegators :redis, :rpush, :llen, :lindex, :get, :set, :del, :lpop, :incrby
7
7
 
8
- def playout svcs = nil
9
- @svcs = svcs.map{ |s| s.instance } if svcs
8
+ def playout *svcs
9
+ @svcs ||= []
10
+ @svcs.concat svcs.map{ |s| s.instance }
10
11
  true while @svcs.any?{ |s| s.play }
11
12
  end
12
13
 
@@ -33,7 +34,7 @@ module Pegasus
33
34
  end
34
35
 
35
36
  def wait ticket_no
36
- playout if @instance
37
+ @instance.play if @instance
37
38
  logger.debug "waiting on ticket #{ticket_no}"
38
39
  blpop ticket_no, 0
39
40
  del ticket_no
@@ -32,6 +32,12 @@ module Pegasus
32
32
  logger.info "#{self.class.name} NOOP"
33
33
  end
34
34
 
35
+ def discard_queue!
36
+ backup_key = "#{wait_queue_key}_backup_#{Time.unix}"
37
+ renamenx wait_queue_key, backup_key
38
+ backup_key
39
+ end
40
+
35
41
  def play
36
42
  while next_task = lpop(wait_queue_key)
37
43
  run_task next_task
data/lib/pegasus.rb CHANGED
@@ -1,3 +1,13 @@
1
1
  require 'forwardable'
2
2
  require 'configurer'
3
+
4
+ class Time
5
+ def self.unix
6
+ Time.now.utc.to_i
7
+ end
8
+ def self.float
9
+ Time.now.utc.to_f
10
+ end
11
+ end
12
+
3
13
  require 'pegasus/service'
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Joe Edelman
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-15 00:00:00 -07:00
17
+ date: 2010-09-27 00:00:00 -07:00
18
18
  default_executable: pegasus
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency