sidekiq_bulk_job 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/sidekiq_bulk_job.rb +23 -4
- data/lib/sidekiq_bulk_job/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 795d7a4f3d359d67ee4cf6894df0fc14193da298e778e779da208f38168f6a96
|
4
|
+
data.tar.gz: baf26c1a2d731da06faed59c9824298e4c22c7ae3cf8a67e4fb7c29fa2d4860e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac4f23ee0e7a81ad91ee343c3c5df63baf656d48a3eebe2925f18cd6e87589f519c477f3f2c49c4cf0fa923586506591ee81014fce20a8ff848ab63a8df0b195
|
7
|
+
data.tar.gz: b770c30598a61234cbcd1534c84ed9f7f0782b47f3315c51e1aa2368b2a82eabdcc1cdbc8b062bbce491e7b726ef662e74448dd6474abd9a89be5c9d6ad7cace
|
data/Gemfile.lock
CHANGED
data/lib/sidekiq_bulk_job.rb
CHANGED
@@ -64,18 +64,37 @@ module SidekiqBulkJob
|
|
64
64
|
|
65
65
|
class << self
|
66
66
|
|
67
|
-
attr_accessor :prefix, :redis, :queue, :batch_size, :logger, :process_fail
|
67
|
+
attr_accessor :prefix, :redis, :queue, :scheduled_delay, :async_delay, :batch_size, :logger, :process_fail
|
68
68
|
|
69
|
-
def config(redis: , logger: , process_fail: , queue: :default, batch_size: 3000, prefix: "SidekiqBulkJob")
|
69
|
+
def config(redis: , logger: , process_fail: , async_delay: 60, scheduled_delay: 10, queue: :default, batch_size: 3000, prefix: "SidekiqBulkJob")
|
70
70
|
if redis.nil?
|
71
71
|
raise ArgumentError.new("redis not allow nil")
|
72
72
|
end
|
73
|
+
if logger.nil?
|
74
|
+
raise ArgumentError.new("logger not allow nil")
|
75
|
+
end
|
76
|
+
if process_fail.nil?
|
77
|
+
raise ArgumentError.new("process_fail not allow nil")
|
78
|
+
end
|
79
|
+
if async_delay.to_f < 2
|
80
|
+
raise ArgumentError.new("async_delay not allow less than 2 seconds.")
|
81
|
+
elsif async_delay.to_f > 5 * 60
|
82
|
+
raise ArgumentError.new("async_delay not allow greater than 5 minutes.")
|
83
|
+
end
|
84
|
+
if scheduled_delay.to_f < 2
|
85
|
+
raise ArgumentError.new("scheduled_delay not allow less than 2 seconds.")
|
86
|
+
elsif scheduled_delay.to_f > 30
|
87
|
+
raise ArgumentError.new("scheduled_delay not allow greater than 2 seconds.")
|
88
|
+
end
|
89
|
+
|
73
90
|
self.redis = redis
|
74
91
|
self.queue = queue
|
75
92
|
self.batch_size = batch_size
|
76
93
|
self.prefix = prefix
|
77
94
|
self.logger = logger
|
78
95
|
self.process_fail = process_fail
|
96
|
+
self.async_delay = async_delay.to_f
|
97
|
+
self.scheduled_delay = scheduled_delay.to_f
|
79
98
|
end
|
80
99
|
|
81
100
|
def set(options)
|
@@ -121,7 +140,7 @@ module SidekiqBulkJob
|
|
121
140
|
args_redis_key = nil
|
122
141
|
target = scheduled_set.find do |job|
|
123
142
|
if job.klass == SidekiqBulkJob::ScheduledJob.to_s &&
|
124
|
-
job.at.to_i.between?((at -
|
143
|
+
job.at.to_i.between?((at - self.scheduled_delay).to_i, (at + self.scheduled_delay).to_i) # 允许30秒延迟
|
125
144
|
_job_class_name, args_redis_key = job.args
|
126
145
|
_job_class_name == job_class_name
|
127
146
|
end
|
@@ -197,7 +216,7 @@ module SidekiqBulkJob
|
|
197
216
|
if !_monitor.nil?
|
198
217
|
# TODO debug log
|
199
218
|
else
|
200
|
-
SidekiqBulkJob::Monitor.client_push("queue" => queue, "at" => (time_now +
|
219
|
+
SidekiqBulkJob::Monitor.client_push("queue" => queue, "at" => (time_now + self.async_delay).to_f, "class" => SidekiqBulkJob::Monitor, "args" => [time_now.to_f, job_class_name])
|
201
220
|
end
|
202
221
|
end
|
203
222
|
|