resque-pool 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -26,8 +26,9 @@ To configure resque-pool, you can use either `resque-pool.yml` or
26
26
  (`resque/pool/tasks`) in your rake file, and call the `resque:pool` task.
27
27
 
28
28
  The YAML file supports both using root level defaults as well as environment
29
- specific overrides. For example, to use resque-pool with rails, in
30
- `config/resque-pool.yml`:
29
+ specific overrides (`RACK_ENV`, `RAILS_ENV`, and `RESQUE_ENV` environment
30
+ variables will be used to determine environment). For example, to use
31
+ resque-pool with rails, in `config/resque-pool.yml`:
31
32
 
32
33
  foo: 1
33
34
  bar: 2
@@ -110,6 +111,11 @@ Other Features
110
111
  Workers will watch the pool master, and gracefully shutdown if the master
111
112
  process dies (for whatever reason) before them.
112
113
 
114
+ You can specify an alternate config file by setting the `RESQUE_POOL_CONFIG`
115
+ environment variable like so:
116
+
117
+ rake resque:pool RESQUE_ENV=production RESQUE_POOL_CONFIG=/path/to/my/config.yml
118
+
113
119
  TODO
114
120
  -----
115
121
 
@@ -11,55 +11,11 @@ class Resque::Pool
11
11
  @pool_master_pid && @pool_master_pid != Process.ppid
12
12
  end
13
13
 
14
- # this allows us to shutdown
14
+ # override +shutdown?+ method
15
15
  def shutdown?
16
- @shutdown || pool_master_has_gone_away?
16
+ super || pool_master_has_gone_away?
17
17
  end
18
18
 
19
- # this entire method (except for one line) is copied and pasted from
20
- # resque-1.9.10. If shutdown were used as a method (attr_reader) rather
21
- # than an instance variable, I wouldn't need to reduplicate this. :-(
22
- #
23
- # hopefully I can get defunkt to accept my patch for this.
24
- # Until it is, the resque-pool gem will depend on an exact version of
25
- # resque.
26
- def work(interval = 5, &block)
27
- $0 = "resque: Starting"
28
- startup
29
-
30
- loop do
31
- #### THIS IS THE ONLY LINE THAT IS CHANGED
32
- break if shutdown?
33
- #### THAT WAS THE ONLY LINE THAT WAS CHANGED
34
-
35
- if not @paused and job = reserve
36
- log "got: #{job.inspect}"
37
- run_hook :before_fork, job
38
- working_on job
39
-
40
- if @child = fork
41
- rand # Reseeding
42
- procline "Forked #{@child} at #{Time.now.to_i}"
43
- Process.wait
44
- else
45
- procline "Processing #{job.queue} since #{Time.now.to_i}"
46
- perform(job, &block)
47
- exit! unless @cant_fork
48
- end
49
-
50
- done_working
51
- @child = nil
52
- else
53
- break if interval.to_i == 0
54
- log! "Sleeping for #{interval.to_i}"
55
- procline @paused ? "Paused" : "Waiting for #{@queues.join(',')}"
56
- sleep interval.to_i
57
- end
58
- end
59
-
60
- ensure
61
- unregister_worker
62
- end
63
19
  end
64
20
 
65
21
  end
data/lib/resque/pool.rb CHANGED
@@ -51,15 +51,19 @@ module Resque
51
51
 
52
52
  @config_files = ["resque-pool.yml", "config/resque-pool.yml"]
53
53
  class << self; attr_accessor :config_files; end
54
- def self.load_default_config
55
- @config_files.detect { |f| File.exist?(f) }
54
+ def self.choose_config_file
55
+ if ENV["RESQUE_POOL_CONFIG"]
56
+ ENV["RESQUE_POOL_CONFIG"]
57
+ else
58
+ @config_files.detect { |f| File.exist?(f) }
59
+ end
56
60
  end
57
61
 
58
62
  def self.run
59
63
  if GC.respond_to?(:copy_on_write_friendly=)
60
64
  GC.copy_on_write_friendly = true
61
65
  end
62
- Resque::Pool.new(load_default_config).start.join
66
+ Resque::Pool.new(choose_config_file).start.join
63
67
  end
64
68
 
65
69
  # }}}
@@ -79,8 +83,8 @@ module Resque
79
83
  end
80
84
 
81
85
  def load_config
82
- @config_file and @config = YAML.load_file(@config_file)
83
- @config[environment] and config.merge!(@config[environment])
86
+ @config_file and @config = YAML.load_file(@config_file)
87
+ environment and @config[environment] and config.merge!(@config[environment])
84
88
  config.delete_if {|key, value| value.is_a? Hash }
85
89
  end
86
90
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-pool
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
9
+ - 9
10
+ version: 0.0.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - nicholas a. evans
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-20 00:00:00 -04:00
18
+ date: 2010-08-26 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -38,14 +38,13 @@ dependencies:
38
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - "="
41
+ - - ~>
42
42
  - !ruby/object:Gem::Version
43
- hash: 39
43
+ hash: 27
44
44
  segments:
45
45
  - 1
46
- - 9
47
46
  - 10
48
- version: 1.9.10
47
+ version: "1.10"
49
48
  type: :runtime
50
49
  version_requirements: *id002
51
50
  description: " quickly and easily fork a pool of resque workers,\n saving memory (w/REE) and monitoring their uptime\n"