sidekiq_bulk_job 0.1.3 → 0.1.4
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/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
|
|