perfectqueue 0.8.52 → 0.8.53
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/ChangeLog +4 -0
- data/lib/perfectqueue/backend/rdb.rb +4 -3
- data/lib/perfectqueue/backend/rdb_compat.rb +4 -3
- data/lib/perfectqueue/version.rb +1 -1
- data/spec/rdb_backend_spec.rb +1 -1
- data/spec/rdb_compat_backend_spec.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8e8fc7751663faba5c1ac7de3151649c42a3493
|
4
|
+
data.tar.gz: c7f27e4e75b0faa7aceb267ef478089641291269
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c64103797dd50c941a428bc6e265a4f54104773b781447de70c3f3fedbc487efdcdb9858e20b0d48a151d6149e6359cefbe6f94b988e35abd3a35dd0db9e9c11
|
7
|
+
data.tar.gz: 8abe49cd58c5b38c8eb3b713c2e9c259a9189993e445520afd2a561db57d52650a6e59305ea7874ead43c03d12d4c476b04d667e41f8faa95203d78110b6857a
|
data/ChangeLog
CHANGED
@@ -4,7 +4,6 @@ require_relative 'rdb_compat'
|
|
4
4
|
|
5
5
|
module PerfectQueue::Backend
|
6
6
|
class RDBBackend
|
7
|
-
MAX_RETRY = ::PerfectQueue::Backend::RDBCompatBackend::MAX_RETRY
|
8
7
|
DELETE_OFFSET = ::PerfectQueue::Backend::RDBCompatBackend::DELETE_OFFSET
|
9
8
|
class Token < Struct.new(:key)
|
10
9
|
end
|
@@ -22,6 +21,7 @@ module PerfectQueue::Backend
|
|
22
21
|
port: u.port ? u.port.to_i : 3306
|
23
22
|
}
|
24
23
|
@pq_connect_timeout = config.fetch(:pq_connect_timeout, 20)
|
24
|
+
@max_retry_count = config.fetch(:max_retry_count, 10)
|
25
25
|
options[:connect_timeout] = config.fetch(:connect_timeout, 3)
|
26
26
|
options[:sslca] = config[:sslca] if config[:sslca]
|
27
27
|
db_name = u.path.split('/')[1]
|
@@ -34,6 +34,7 @@ module PerfectQueue::Backend
|
|
34
34
|
end
|
35
35
|
|
36
36
|
attr_reader :db
|
37
|
+
attr_reader :max_retry_count
|
37
38
|
|
38
39
|
def submit(id, data, time=Process.clock_gettime(Process::CLOCK_REALTIME, :second), resource=nil, max_running=nil)
|
39
40
|
connect {
|
@@ -63,7 +64,7 @@ module PerfectQueue::Backend
|
|
63
64
|
begin
|
64
65
|
yield
|
65
66
|
rescue Sequel::DatabaseConnectionError
|
66
|
-
if (retry_count += 1) <
|
67
|
+
if (retry_count += 1) < @max_retry_count && tmax > Process.clock_gettime(Process::CLOCK_REALTIME, :second)
|
67
68
|
STDERR.puts "#{$!}\n retrying."
|
68
69
|
sleep 2
|
69
70
|
retry
|
@@ -75,7 +76,7 @@ module PerfectQueue::Backend
|
|
75
76
|
if $!.to_s.include?('try restarting transaction')
|
76
77
|
err = $!.backtrace.map{|bt| " #{bt}" }.unshift($!).join("\n")
|
77
78
|
retry_count += 1
|
78
|
-
if retry_count <
|
79
|
+
if retry_count < @max_retry_count
|
79
80
|
STDERR.puts "#{err}\n retrying."
|
80
81
|
sleep 0.5
|
81
82
|
retry
|
@@ -43,6 +43,7 @@ module PerfectQueue
|
|
43
43
|
super
|
44
44
|
|
45
45
|
@pq_connect_timeout = config.fetch(:pq_connect_timeout, 20)
|
46
|
+
@max_retry_count = config.fetch(:max_retry_count, 10)
|
46
47
|
url = config[:url]
|
47
48
|
@table = config[:table]
|
48
49
|
unless @table
|
@@ -121,9 +122,9 @@ SQL
|
|
121
122
|
end
|
122
123
|
|
123
124
|
attr_reader :db
|
125
|
+
attr_reader :max_retry_count
|
124
126
|
|
125
127
|
KEEPALIVE = 10
|
126
|
-
MAX_RETRY = 10
|
127
128
|
LOCK_WAIT_TIMEOUT = 10
|
128
129
|
DEFAULT_DELETE_INTERVAL = 20
|
129
130
|
|
@@ -373,7 +374,7 @@ SQL
|
|
373
374
|
yield
|
374
375
|
@last_time = now
|
375
376
|
rescue Sequel::DatabaseConnectionError
|
376
|
-
if (count += 1) <
|
377
|
+
if (count += 1) < @max_retry_count && tmax > Time.now.to_i
|
377
378
|
STDERR.puts "#{$!}\n retrying."
|
378
379
|
sleep 2
|
379
380
|
retry
|
@@ -385,7 +386,7 @@ SQL
|
|
385
386
|
if $!.to_s.include?('try restarting transaction')
|
386
387
|
err = ([$!] + $!.backtrace.map {|bt| " #{bt}" }).join("\n")
|
387
388
|
count += 1
|
388
|
-
if count <
|
389
|
+
if count < @max_retry_count
|
389
390
|
STDERR.puts err + "\n retrying."
|
390
391
|
sleep rand
|
391
392
|
retry
|
data/lib/perfectqueue/version.rb
CHANGED
data/spec/rdb_backend_spec.rb
CHANGED
@@ -55,7 +55,7 @@ describe Backend::RDBBackend do
|
|
55
55
|
end
|
56
56
|
context 'error' do
|
57
57
|
it 'returns block result' do
|
58
|
-
expect(RuntimeError).to receive(:new).exactly(
|
58
|
+
expect(RuntimeError).to receive(:new).exactly(db.max_retry_count).and_call_original
|
59
59
|
allow(STDERR).to receive(:puts)
|
60
60
|
allow(db).to receive(:sleep)
|
61
61
|
expect do
|
@@ -367,7 +367,7 @@ describe Backend::RDBCompatBackend do
|
|
367
367
|
end
|
368
368
|
context 'error' do
|
369
369
|
it 'returns block result' do
|
370
|
-
expect(RuntimeError).to receive(:new).exactly(
|
370
|
+
expect(RuntimeError).to receive(:new).exactly(db.max_retry_count).and_call_original
|
371
371
|
allow(STDERR).to receive(:puts)
|
372
372
|
allow(db).to receive(:sleep)
|
373
373
|
expect do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perfectqueue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.53
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -176,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
176
|
version: '0'
|
177
177
|
requirements: []
|
178
178
|
rubyforge_project:
|
179
|
-
rubygems_version: 2.5.
|
179
|
+
rubygems_version: 2.5.2.3
|
180
180
|
signing_key:
|
181
181
|
specification_version: 4
|
182
182
|
summary: Highly available distributed cron built on RDBMS
|