@@ -10,11 +10,11 @@ def perform(job_result)
10
10
end
11
11
end
12
12
13
- class DiscardedNonOverlappingJob < NonOverlappingJob
13
+ class DiscardableNonOverlappingJob < NonOverlappingJob
14
14
limits_concurrency key : -> ( job_result , **) { job_result } , on_conflict : :discard
15
15
end
16
16
17
- class DiscardedOverlappingJob < NonOverlappingJob
17
+ class DiscardableThrottledJob < NonOverlappingJob
18
18
limits_concurrency to : 2 , key : -> ( job_result , **) { job_result } , on_conflict : :discard
19
19
end
20
20
@@ -26,11 +26,11 @@ class NonOverlappingGroupedJob2 < NonOverlappingJob
26
26
limits_concurrency key : -> ( job_result , **) { job_result } , group : "MyGroup"
27
27
end
28
28
29
- class DiscardedNonOverlappingGroupedJob1 < NonOverlappingJob
29
+ class DiscardableNonOverlappingGroupedJob1 < NonOverlappingJob
30
30
limits_concurrency key : -> ( job_result , **) { job_result } , group : "DiscardingGroup" , on_conflict : :discard
31
31
end
32
32
33
- class DiscardedNonOverlappingGroupedJob2 < NonOverlappingJob
33
+ class DiscardableNonOverlappingGroupedJob2 < NonOverlappingJob
34
34
limits_concurrency key : -> ( job_result , **) { job_result } , group : "DiscardingGroup" , on_conflict : :discard
35
35
end
36
36
@@ -195,10 +195,10 @@ class DiscardedNonOverlappingGroupedJob2 < NonOverlappingJob
195
195
196
196
test "enqueue jobs with discarding concurrency controls" do
197
197
assert_ready do
198
- active_job = DiscardedNonOverlappingJob . perform_later ( @result , name : "A" )
198
+ active_job = DiscardableNonOverlappingJob . perform_later ( @result , name : "A" )
199
199
assert active_job . successfully_enqueued?
200
200
201
- assert_not DiscardedNonOverlappingJob . perform_later ( @result , name : "B" ) do |overlapping_active_job |
201
+ assert_not DiscardableNonOverlappingJob . perform_later ( @result , name : "B" ) do |overlapping_active_job |
202
202
assert_not overlapping_active_job . successfully_enqueued?
203
203
assert_equal @discarded_concurrent_error , overlapping_active_job . enqueue_error
204
204
end
@@ -207,14 +207,14 @@ class DiscardedNonOverlappingGroupedJob2 < NonOverlappingJob
207
207
208
208
test "enqueue scheduled job with discarding concurrency controls" do
209
209
assert_ready do
210
- active_job = DiscardedNonOverlappingJob . perform_later ( @result , name : "A" )
210
+ active_job = DiscardableNonOverlappingJob . perform_later ( @result , name : "A" )
211
211
assert active_job . successfully_enqueued?
212
212
end
213
213
214
214
scheduled_job_id = nil
215
215
216
216
assert_scheduled do
217
- scheduled_active_job = DiscardedNonOverlappingJob . set ( wait : 0.5 . seconds ) . perform_later ( @result , name : "B" )
217
+ scheduled_active_job = DiscardableNonOverlappingJob . set ( wait : 0.5 . seconds ) . perform_later ( @result , name : "B" )
218
218
assert scheduled_active_job . successfully_enqueued?
219
219
assert_nil scheduled_active_job . enqueue_error
220
220
@@ -231,8 +231,8 @@ class DiscardedNonOverlappingGroupedJob2 < NonOverlappingJob
231
231
232
232
test "enqueues jobs in bulk with discarding concurrency controls" do
233
233
jobs = [
234
- job_1 = DiscardedNonOverlappingJob . new ( @result , name : "A" ) ,
235
- job_2 = DiscardedNonOverlappingJob . new ( @result , name : "B" )
234
+ job_1 = DiscardableNonOverlappingJob . new ( @result , name : "A" ) ,
235
+ job_2 = DiscardableNonOverlappingJob . new ( @result , name : "B" )
236
236
]
237
237
238
238
assert_job_counts ( ready : 1 , discarded : 1 ) do
@@ -249,16 +249,16 @@ class DiscardedNonOverlappingGroupedJob2 < NonOverlappingJob
249
249
test "enqueue jobs with discarding concurrency controls when below limit" do
250
250
assert_job_counts ( ready : 2 ) do
251
251
assert_ready do
252
- active_job = DiscardedOverlappingJob . perform_later ( @result , name : "A" )
252
+ active_job = DiscardableThrottledJob . perform_later ( @result , name : "A" )
253
253
assert active_job . successfully_enqueued?
254
254
end
255
255
256
256
assert_ready do
257
- active_job = DiscardedOverlappingJob . perform_later ( @result , name : "B" )
257
+ active_job = DiscardableThrottledJob . perform_later ( @result , name : "B" )
258
258
assert active_job . successfully_enqueued?
259
259
end
260
260
261
- assert_not DiscardedOverlappingJob . perform_later ( @result , name : "C" ) do |overlapping_active_job |
261
+ assert_not DiscardableThrottledJob . perform_later ( @result , name : "C" ) do |overlapping_active_job |
262
262
assert_not overlapping_active_job . successfully_enqueued?
263
263
assert_equal @discarded_concurrent_error , overlapping_active_job . enqueue_error
264
264
end
@@ -282,13 +282,13 @@ class DiscardedNonOverlappingGroupedJob2 < NonOverlappingJob
282
282
test "enqueue jobs with discarding concurrency controls in the same concurrency group" do
283
283
assert_job_counts ( ready : 1 ) do
284
284
assert_ready do
285
- active_job = DiscardedNonOverlappingGroupedJob1 . perform_later ( @result , name : "A" )
285
+ active_job = DiscardableNonOverlappingGroupedJob1 . perform_later ( @result , name : "A" )
286
286
assert active_job . successfully_enqueued?
287
287
assert_equal 1 , active_job . concurrency_limit
288
288
assert_equal "DiscardingGroup/JobResult/#{ @result . id } " , active_job . concurrency_key
289
289
end
290
290
291
- assert_not DiscardedNonOverlappingGroupedJob2 . perform_later ( @result , name : "B" ) do |blocked_active_job |
291
+ assert_not DiscardableNonOverlappingGroupedJob2 . perform_later ( @result , name : "B" ) do |blocked_active_job |
292
292
assert_not blocked_active_job . successfully_enqueued?
293
293
assert_equal 1 , blocked_active_job . concurrency_limit
294
294
assert_equal "DiscardingGroup/JobResult/#{ @result . id } " , blocked_active_job . concurrency_key
0 commit comments