blob: e4e6c453e8dd7c5e0c03fc6178901019dee33e39 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# frozen_string_literal: true
module ClickHouse
module MigrationSupport
class SidekiqMiddleware
def call(worker, job, queue)
return yield unless register_worker?(worker.class)
::ClickHouse::MigrationSupport::ExclusiveLock.register_running_worker(worker.class, worker_id(job, queue)) do
yield
end
end
private
def worker_id(job, queue)
[queue, job['jid']].join(':')
end
def register_worker?(worker_class)
worker_class.respond_to?(:click_house_migration_lock) && worker_class.register_click_house_worker?
end
end
end
end
|