add spec to user enqueuer, add user page queue depth to watermark limit
This commit is contained in:
@@ -46,10 +46,17 @@ class Domain::Fa::UserEnqueuer
|
||||
return SpecUtil.enqueued_jobs(Domain::Fa::Job::UserFollowsJob).count
|
||||
end
|
||||
|
||||
GoodJob::Job.where(
|
||||
queue_name: "fa_user_follows",
|
||||
finished_at: nil,
|
||||
performed_at: nil,
|
||||
).count
|
||||
[
|
||||
GoodJob::Job.where(
|
||||
queue_name: "fa_user_follows",
|
||||
finished_at: nil,
|
||||
performed_at: nil,
|
||||
).count,
|
||||
GoodJob::Job.where(
|
||||
queue_name: "fa_user_page",
|
||||
finished_at: nil,
|
||||
performed_at: nil,
|
||||
).count,
|
||||
].max
|
||||
end
|
||||
end
|
||||
|
||||
37
spec/lib/domain/fa/user_enquerer_spec.rb
Normal file
37
spec/lib/domain/fa/user_enquerer_spec.rb
Normal file
@@ -0,0 +1,37 @@
|
||||
describe Domain::Fa::UserEnqueuer do
|
||||
it "works" do
|
||||
ActiveJob::Base.queue_adapter = :test
|
||||
users = 7.times.map do
|
||||
SpecUtil.create_domain_fa_user
|
||||
end
|
||||
|
||||
enqueuer = Domain::Fa::UserEnqueuer.new(
|
||||
start_at: 0,
|
||||
high_water_mark: 5,
|
||||
low_water_mark: 3,
|
||||
)
|
||||
|
||||
get_enqueued_users = proc do
|
||||
SpecUtil.enqueued_jobs(Domain::Fa::Job::UserFollowsJob).map do |job|
|
||||
job[:args][0][:user]
|
||||
end
|
||||
end
|
||||
|
||||
enqueuer.run_once
|
||||
expect(get_enqueued_users.call).to eq(users[0...5])
|
||||
SpecUtil.shift_jobs(Domain::Fa::Job::UserFollowsJob)
|
||||
|
||||
enqueuer.run_once
|
||||
expect(get_enqueued_users.call).to eq(users[1...5])
|
||||
SpecUtil.shift_jobs(Domain::Fa::Job::UserFollowsJob)
|
||||
|
||||
enqueuer.run_once
|
||||
expect(get_enqueued_users.call).to eq(users[2...7])
|
||||
SpecUtil.shift_jobs(Domain::Fa::Job::UserFollowsJob, 3)
|
||||
|
||||
expect do
|
||||
enqueuer.run_once
|
||||
end.to raise_exception(StopIteration)
|
||||
expect(get_enqueued_users.call).to eq(users[5...7])
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user