Class: Gitlab::Database::Migrations::BaseBackgroundRunner
- Inherits:
-
Object
- Object
- Gitlab::Database::Migrations::BaseBackgroundRunner
show all
- Defined in:
- lib/gitlab/database/migrations/base_background_runner.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of BaseBackgroundRunner.
9
10
11
12
|
# File 'lib/gitlab/database/migrations/base_background_runner.rb', line 9
def initialize(result_dir:, connection:)
@result_dir = result_dir
@connection = connection
end
|
Instance Attribute Details
#connection ⇒ Object
Returns the value of attribute connection.
7
8
9
|
# File 'lib/gitlab/database/migrations/base_background_runner.rb', line 7
def connection
@connection
end
|
#result_dir ⇒ Object
Returns the value of attribute result_dir.
7
8
9
|
# File 'lib/gitlab/database/migrations/base_background_runner.rb', line 7
def result_dir
@result_dir
end
|
Instance Method Details
#jobs_by_migration_name ⇒ Object
14
15
16
|
# File 'lib/gitlab/database/migrations/base_background_runner.rb', line 14
def jobs_by_migration_name
raise NotImplementedError, 'subclass must implement'
end
|
#print_job_progress(batch_name, job) ⇒ Object
22
23
24
|
# File 'lib/gitlab/database/migrations/base_background_runner.rb', line 22
def print_job_progress(batch_name, job)
end
|
#run_job(job) ⇒ Object
18
19
20
|
# File 'lib/gitlab/database/migrations/base_background_runner.rb', line 18
def run_job(job)
raise NotImplementedError, 'subclass must implement'
end
|
#run_jobs(for_duration:) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/gitlab/database/migrations/base_background_runner.rb', line 26
def run_jobs(for_duration:)
jobs_to_run = jobs_by_migration_name
return if jobs_to_run.empty?
duration_per_migration_type = for_duration / jobs_to_run.count.to_f
jobs_to_run.each do |migration_name, jobs|
run_until = duration_per_migration_type.from_now
run_jobs_for_migration(migration_name: migration_name, jobs: jobs, run_until: run_until)
end
end
|