ci-queue
Advanced tools
+1
-0
@@ -43,2 +43,3 @@ # coding: utf-8 | ||
| spec.add_development_dependency 'minitest-reporters', '~> 1.1' | ||
| spec.add_development_dependency 'mocha' | ||
@@ -45,0 +46,0 @@ spec.add_development_dependency 'rexml' |
+5
-1
| PATH | ||
| remote: . | ||
| specs: | ||
| ci-queue (0.87.0) | ||
| ci-queue (0.88.0) | ||
| logger | ||
@@ -46,2 +46,4 @@ | ||
| ruby-progressbar | ||
| mocha (3.1.0) | ||
| ruby2_keywords (>= 0.0.5) | ||
| msgpack (1.8.0) | ||
@@ -90,2 +92,3 @@ parallel (1.27.0) | ||
| ruby-progressbar (1.13.0) | ||
| ruby2_keywords (0.0.5) | ||
| securerandom (0.4.1) | ||
@@ -117,2 +120,3 @@ simplecov (0.22.0) | ||
| minitest-reporters (~> 1.1) | ||
| mocha | ||
| msgpack | ||
@@ -119,0 +123,0 @@ rake |
@@ -267,2 +267,4 @@ # frozen_string_literal: true | ||
| class HeartbeatProcess | ||
| MAX_RESTART_ATTEMPTS = 3 | ||
| def initialize(redis_url, zset_key, owners_key, leases_key) | ||
@@ -317,2 +319,9 @@ @redis_url = redis_url | ||
| send_message(:tick!, id: id, lease: lease.to_s) | ||
| @restart_attempts = 0 | ||
| rescue IOError, Errno::EPIPE => error | ||
| @restart_attempts = (@restart_attempts || 0) + 1 | ||
| raise if @restart_attempts > MAX_RESTART_ATTEMPTS | ||
| restart! | ||
| retry | ||
| end | ||
@@ -322,2 +331,13 @@ | ||
| def restart! | ||
| @pipe.close rescue nil | ||
| begin | ||
| Process.kill(:TERM, @pid) | ||
| Process.waitpid2(@pid) | ||
| rescue Errno::ESRCH, Errno::ECHILD | ||
| nil | ||
| end | ||
| boot! | ||
| end | ||
| def send_message(*message) | ||
@@ -324,0 +344,0 @@ payload = message.to_json |
@@ -5,3 +5,3 @@ # frozen_string_literal: true | ||
| module Queue | ||
| VERSION = '0.87.0' | ||
| VERSION = '0.88.0' | ||
| DEV_SCRIPTS_ROOT = ::File.expand_path('../../../../../redis', __FILE__) | ||
@@ -8,0 +8,0 @@ RELEASE_SCRIPTS_ROOT = ::File.expand_path('../redis', __FILE__) |