hirefire-resource 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/README.md +2 -1
- data/hirefire-resource.gemspec +1 -1
- data/lib/hirefire-resource.rb +1 -1
- data/lib/hirefire/macro/delayed_job.rb +5 -5
- data/lib/hirefire/macro/qc.rb +4 -4
- data/lib/hirefire/macro/qu.rb +5 -5
- data/lib/hirefire/macro/resque.rb +5 -5
- data/lib/hirefire/macro/sidekiq.rb +30 -0
- data/lib/hirefire/resource.rb +9 -8
- metadata +39 -23
data/.gitignore
CHANGED
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.*
|
data/hirefire-resource.gemspec
CHANGED
data/lib/hirefire-resource.rb
CHANGED
|
@@ -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
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
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!
|
data/lib/hirefire/macro/qc.rb
CHANGED
|
@@ -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
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
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)
|
data/lib/hirefire/macro/qu.rb
CHANGED
|
@@ -7,13 +7,13 @@ module HireFire
|
|
|
7
7
|
|
|
8
8
|
# Counts the amount of jobs in the (provided) Qu queue(s).
|
|
9
9
|
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
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
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
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
|
+
|
data/lib/hirefire/resource.rb
CHANGED
|
@@ -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
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
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
|
-
# @
|
|
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
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
+
|
|
53
|
+
require_paths:
|
|
41
54
|
- lib
|
|
42
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
requirements:
|
|
51
|
-
- -
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
|
|
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.
|
|
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
|
-
|
|
77
|
+
|