hirefire-resource 0.4.1 → 0.4.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.
- checksums.yaml +4 -4
- data/hirefire-resource.gemspec +2 -2
- data/lib/hirefire/macro/que.rb +11 -2
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e74599dff2d7b0509fc068e143312336e854e3c2
|
|
4
|
+
data.tar.gz: d515af29724dbaff66c7f3fb24fd73c22a83c4c5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9d43c787528213ec9956e16a804f407c106db4eba0f6f2c38d3f27626f8e81e7cd2b6d0f2419d3fd93d658736a80f275c6d71a046328b2429c79f603b0a96966
|
|
7
|
+
data.tar.gz: 83fa2527ebf43e28fb7b6939f595c8c8715922404601ce1de488acd6534301e41f40038253e6d4935e94c1d1940c6247351dc61e3376bd09d2d95ca0696b29c2
|
data/hirefire-resource.gemspec
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |gem|
|
|
4
4
|
gem.name = "hirefire-resource"
|
|
5
|
-
gem.version = "0.4.
|
|
5
|
+
gem.version = "0.4.2"
|
|
6
6
|
gem.platform = Gem::Platform::RUBY
|
|
7
7
|
gem.authors = "Michael van Rooijen"
|
|
8
8
|
gem.email = "michael@hirefire.io"
|
|
9
|
-
gem.homepage = "
|
|
9
|
+
gem.homepage = "https://www.hirefire.io"
|
|
10
10
|
gem.summary = "Autoscaling for your Heroku dynos"
|
|
11
11
|
gem.description = "Load- and schedule-based scaling for web- and worker dynos"
|
|
12
12
|
gem.licenses = ["Apache License"]
|
data/lib/hirefire/macro/que.rb
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
module HireFire
|
|
4
4
|
module Macro
|
|
5
5
|
module Que
|
|
6
|
+
QUERY = %{
|
|
7
|
+
SELECT count(*) AS total,
|
|
8
|
+
count(locks.job_id) AS running,
|
|
9
|
+
coalesce(sum((error_count > 0 AND locks.job_id IS NULL)::int), 0) AS failing,
|
|
10
|
+
coalesce(sum((error_count = 0 AND locks.job_id IS NULL)::int), 0) AS scheduled
|
|
11
|
+
FROM que_jobs LEFT JOIN (
|
|
12
|
+
SELECT (classid::bigint << 32) + objid::bigint AS job_id
|
|
13
|
+
FROM pg_locks WHERE locktype = 'advisory'
|
|
14
|
+
) locks USING (job_id) }.freeze
|
|
15
|
+
|
|
6
16
|
extend self
|
|
7
17
|
|
|
8
18
|
# Queries the PostgreSQL database through Que in order to
|
|
@@ -16,8 +26,7 @@ module HireFire
|
|
|
16
26
|
# @return [Integer] the number of jobs in the queue(s).
|
|
17
27
|
#
|
|
18
28
|
def queue(queue = nil)
|
|
19
|
-
query =
|
|
20
|
-
query = "#{query} WHERE queue = '#{queue}'" if queue
|
|
29
|
+
query = queue ? "#{QUERY} WHERE queue = '#{queue}'" : QUERY
|
|
21
30
|
results = ::Que.execute(query).first
|
|
22
31
|
results["total"].to_i - results["failing"].to_i
|
|
23
32
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hirefire-resource
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael van Rooijen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-06-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: Load- and schedule-based scaling for web- and worker dynos
|
|
14
14
|
email: michael@hirefire.io
|
|
@@ -37,7 +37,7 @@ files:
|
|
|
37
37
|
- lib/hirefire/middleware.rb
|
|
38
38
|
- lib/hirefire/railtie.rb
|
|
39
39
|
- lib/hirefire/resource.rb
|
|
40
|
-
homepage:
|
|
40
|
+
homepage: https://www.hirefire.io
|
|
41
41
|
licenses:
|
|
42
42
|
- Apache License
|
|
43
43
|
metadata: {}
|
|
@@ -57,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
57
57
|
version: '0'
|
|
58
58
|
requirements: []
|
|
59
59
|
rubyforge_project:
|
|
60
|
-
rubygems_version: 2.6.
|
|
60
|
+
rubygems_version: 2.6.8
|
|
61
61
|
signing_key:
|
|
62
62
|
specification_version: 4
|
|
63
63
|
summary: Autoscaling for your Heroku dynos
|