hirefire-resource 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|