hirefire-resource 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  *.swp
3
3
  *.swo
4
4
  *.gem
5
+ .yardoc
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # [HireFire](http://hirefireapp.com/) - The Heroku Dyno Manager
2
2
 
3
- *Note: This gem currently only applies to users that are using the new HireFire beta program.
3
+ *Note: This gem currently only applies to users that are using the [new HireFire beta](https://manager.hirefireapp.com/) program.
4
4
  Once out of beta, this will become the default gem for new users.*
5
5
 
6
6
  HireFire is a hosted service that manages / autoscales your [Heroku](http://heroku.com/) dynos.
@@ -17,6 +17,7 @@ It supports practically any worker library. We provide out-of-the-box support fo
17
17
  * Resque
18
18
  * Qu
19
19
  * QueueClassic
20
+ * Sidekiq
20
21
 
21
22
  *Note that you can write your own worker queue logic for almost any other worker library as well.
22
23
  HireFire can scale multiple individual worker libraries at the same time, as well as multiple individual queues for any worker library.*
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "hirefire-resource"
5
- gem.version = "0.0.1"
5
+ gem.version = "0.0.2"
6
6
  gem.platform = Gem::Platform::RUBY
7
7
  gem.authors = "Michael van Rooijen"
8
8
  gem.email = "michael@hirefireapp.com"
@@ -6,7 +6,7 @@ HIREFIRE_PATH = File.expand_path("../hirefire", __FILE__)
6
6
  require "#{HIREFIRE_PATH}/#{file}"
7
7
  end
8
8
 
9
- %w[delayed_job resque qu qc].each do |file|
9
+ %w[delayed_job resque sidekiq qu qc].each do |file|
10
10
  require "#{HIREFIRE_PATH}/macro/#{file}"
11
11
  end
12
12
 
@@ -10,13 +10,13 @@ module HireFire
10
10
  # Once determined, it will build the appropriate query criteria in order
11
11
  # to count the amount of jobs in a given queue and return the result.
12
12
  #
13
- # Example:
14
- #
15
- # HireFire::Macro::Delayed::Job.queue # all queues
16
- # HireFire::Macro::Delayed::Job.queue("email") # only email queue
17
- # HireFire::Macro::Delayed::Job.queue("audio", "video") # audio and video queues
13
+ # @example Delayed::Job Macro Usage
14
+ # HireFire::Macro::Delayed::Job.queue # all queues
15
+ # HireFire::Macro::Delayed::Job.queue("email") # only email queue
16
+ # HireFire::Macro::Delayed::Job.queue("audio", "video") # audio and video queues
18
17
  #
19
18
  # @param [Array] queues provide one or more queue names, or none for "all".
19
+ #
20
20
  # @return [Integer] the number of jobs in the queue(s).
21
21
  def queue(*queues)
22
22
  queues.flatten!
@@ -8,12 +8,12 @@ module HireFire
8
8
  # Queries the PostgreSQL database through QueueClassic in order to
9
9
  # count the amount of jobs in the specified queue.
10
10
  #
11
- # Example:
12
- #
13
- # HireFire::Macro::QC.queue # counts the `default` queue.
14
- # HireFire::Macro::QC.queue("email") # counts the `email` queue.
11
+ # @example QueueClassic Macro Usage
12
+ # HireFire::Macro::QC.queue # counts the `default` queue.
13
+ # HireFire::Macro::QC.queue("email") # counts the `email` queue.
15
14
  #
16
15
  # @param [String, Symbol, nil] queue the queue name to count. (default: `default`)
16
+ #
17
17
  # @return [Integer] the number of jobs in the queue(s).
18
18
  def queue(queue = "default")
19
19
  ::QC::Queries.count(queue.to_s)
@@ -7,13 +7,13 @@ module HireFire
7
7
 
8
8
  # Counts the amount of jobs in the (provided) Qu queue(s).
9
9
  #
10
- # Example:
11
- #
12
- # HireFire::Macro::Qu.queue # all queues
13
- # HireFire::Macro::Qu.queue("email") # only email queue
14
- # HireFire::Macro::Qu.queue("audio", "video") # audio and video queues
10
+ # @example Qu Macro Usage
11
+ # HireFire::Macro::Qu.queue # all queues
12
+ # HireFire::Macro::Qu.queue("email") # only email queue
13
+ # HireFire::Macro::Qu.queue("audio", "video") # audio and video queues
15
14
  #
16
15
  # @param [Array] queues provide one or more queue names, or none for "all".
16
+ #
17
17
  # @return [Integer] the number of jobs in the queue(s).
18
18
  def queue(*queues)
19
19
  queues = ::Qu.backend.queues if queues.empty?
@@ -7,13 +7,13 @@ module HireFire
7
7
 
8
8
  # Counts the amount of jobs in the (provided) Resque queue(s).
9
9
  #
10
- # Example:
11
- #
12
- # HireFire::Macro::Resque.queue # all queues
13
- # HireFire::Macro::Resque.queue("email") # only email queue
14
- # HireFire::Macro::Resque.queue("audio", "video") # audio and video queues
10
+ # @example Resque Macro Usage
11
+ # HireFire::Macro::Resque.queue # all queues
12
+ # HireFire::Macro::Resque.queue("email") # only email queue
13
+ # HireFire::Macro::Resque.queue("audio", "video") # audio and video queues
15
14
  #
16
15
  # @param [Array] queues provide one or more queue names, or none for "all".
16
+ #
17
17
  # @return [Integer] the number of jobs in the queue(s).
18
18
  def queue(*queues)
19
19
  return ::Resque.info[:pending].to_i if queues.empty?
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+
3
+ module HireFire
4
+ module Macro
5
+ module Sidekiq
6
+ extend self
7
+
8
+ # Counts the amount of jobs in the (provided) Sidekiq queue(s).
9
+ #
10
+ # @example Sidekiq Macro Usage
11
+ # HireFire::Macro::Sidekiq.queue # all queues
12
+ # HireFire::Macro::Sidekiq.queue("email") # only email queue
13
+ # HireFire::Macro::Sidekiq.queue("audio", "video") # audio and video queues
14
+ #
15
+ # @param [Array] queues provide one or more queue names, or none for "all".
16
+ #
17
+ # @return [Integer] the number of jobs in the queue(s).
18
+ def queue(*queues)
19
+ queues = ::Sidekiq.redis { |conn| conn.smembers("queues") } if queues.empty?
20
+ queues.
21
+ flatten.
22
+ inject(0) { |memo, queue|
23
+ memo += ::Sidekiq.redis { |conn| conn.llen("queue:#{queue}") }
24
+ memo
25
+ }
26
+ end
27
+ end
28
+ end
29
+ end
30
+
@@ -3,19 +3,20 @@
3
3
  module HireFire
4
4
  module Resource
5
5
  extend self
6
+
7
+ # @return [Array] The configured dynos.
6
8
  attr_accessor :dynos
7
9
 
8
10
  # Sets the `@dynos` instance variable to an empty Array to hold all the dyno configuration.
9
11
  #
10
- # Example:
11
- #
12
- # HireFire::Resource.configure do |config|
13
- # config.dyno(:worker) do
14
- # # Macro or Custom logic for the :worker dyno here..
15
- # end
16
- # end
12
+ # @example Resource Configuration
13
+ # HireFire::Resource.configure do |config|
14
+ # config.dyno(:worker) do
15
+ # # Macro or Custom logic for the :worker dyno here..
16
+ # end
17
+ # end
17
18
  #
18
- # @yields [HireFire::Resource] to allow for block-style configuration.
19
+ # @yield [HireFire::Resource] to allow for block-style configuration.
19
20
  def configure
20
21
  @dynos ||= []
21
22
  yield self
metadata CHANGED
@@ -1,24 +1,33 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hirefire-resource
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 2
9
+ version: 0.0.2
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Michael van Rooijen
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2012-07-20 00:00:00.000000000 Z
16
+
17
+ date: 2012-11-14 00:00:00 +01:00
18
+ default_executable:
13
19
  dependencies: []
20
+
14
21
  description: HireFire - The Heroku Dyno Manager
15
22
  email: michael@hirefireapp.com
16
- executables:
23
+ executables:
17
24
  - hirefire
18
25
  - hirefireapp
19
26
  extensions: []
27
+
20
28
  extra_rdoc_files: []
21
- files:
29
+
30
+ files:
22
31
  - .gitignore
23
32
  - README.md
24
33
  - bin/hirefire
@@ -30,32 +39,39 @@ files:
30
39
  - lib/hirefire/macro/qc.rb
31
40
  - lib/hirefire/macro/qu.rb
32
41
  - lib/hirefire/macro/resque.rb
42
+ - lib/hirefire/macro/sidekiq.rb
33
43
  - lib/hirefire/middleware.rb
34
44
  - lib/hirefire/railtie.rb
35
45
  - lib/hirefire/resource.rb
46
+ has_rdoc: true
36
47
  homepage: http://hirefireapp.com/
37
48
  licenses: []
49
+
38
50
  post_install_message:
39
51
  rdoc_options: []
40
- require_paths:
52
+
53
+ require_paths:
41
54
  - lib
42
- required_ruby_version: !ruby/object:Gem::Requirement
43
- none: false
44
- requirements:
45
- - - ! '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- required_rubygems_version: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ segments:
67
+ - 0
68
+ version: "0"
54
69
  requirements: []
70
+
55
71
  rubyforge_project:
56
- rubygems_version: 1.8.16
72
+ rubygems_version: 1.3.6
57
73
  signing_key:
58
74
  specification_version: 3
59
75
  summary: HireFire - The Heroku Dyno Manager
60
76
  test_files: []
61
- has_rdoc:
77
+