Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1147_platform] add unique for jobs #464

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ PATH
rswag-api
rswag-ui
sidekiq
sidekiq-unique-jobs
swagger_yard
virtus

Expand Down Expand Up @@ -134,6 +135,9 @@ GEM
bcrypt (3.1.16)
bootsnap (1.10.3)
msgpack (~> 1.2)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (>= 1.0, < 6)
builder (3.2.4)
byebug (11.1.3)
case_transform (0.2)
Expand Down Expand Up @@ -343,6 +347,12 @@ GEM
connection_pool (>= 2.2.2)
rack (~> 2.0)
redis (>= 4.2.0)
sidekiq-unique-jobs (7.1.30)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (< 5.0)
sidekiq (>= 5.0, < 7.0)
thor (>= 0.20, < 3.0)
sprockets (4.0.3)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
Expand Down
18 changes: 18 additions & 0 deletions config/initializers/sidekiq.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,24 @@

Sidekiq.configure_client do |config|
config.redis = { url: ENV['REDIS_URL'], size: 2 }

config.client_middleware do |chain|
chain.add(SidekiqUniqueJobs::Middleware::Client)
end
end

Sidekiq.configure_server do |config|
config.redis = { url: ENV['REDIS_URL'], size: 20 }

config.client_middleware do |chain|
chain.add(SidekiqUniqueJobs::Middleware::Client)
end

config.server_middleware do |chain|
chain.add(SidekiqUniqueJobs::Middleware::Server)
end

SidekiqUniqueJobs::Server.configure(config)
end

if Settings.sidekiq.login.present?
Expand All @@ -23,3 +37,7 @@
valid_login & valid_password
end
end

SidekiqUniqueJobs.configure do |config|
config.enabled = !Rails.env.test?
end
2 changes: 2 additions & 0 deletions config/sidekiq.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@
- [accounts, 10]
- [containers, 10]
- [github, 10]
- [disable_deployments, 5]
- [clusters, 10]
10 changes: 10 additions & 0 deletions core/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ PATH
rswag-api
rswag-ui
sidekiq
sidekiq-unique-jobs
swagger_yard
virtus

Expand Down Expand Up @@ -131,6 +132,9 @@ GEM
ice_nine (~> 0.11.0)
thread_safe (~> 0.3, >= 0.3.1)
bcrypt (3.1.16)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (>= 1.0, < 6)
builder (3.2.4)
bump (0.10.0)
byebug (11.1.3)
Expand Down Expand Up @@ -357,6 +361,12 @@ GEM
connection_pool (>= 2.2.5, < 3)
rack (~> 2.0)
redis (>= 4.5.0, < 5)
sidekiq-unique-jobs (7.1.30)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (< 5.0)
sidekiq (>= 5.0, < 7.0)
thor (>= 0.20, < 3.0)
sprockets (4.1.1)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
Expand Down
4 changes: 3 additions & 1 deletion core/app/jobs/uffizzi_core/cluster/delete_job.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# frozen_string_literal: true

class UffizziCore::Cluster::DeleteJob < UffizziCore::ApplicationJob
sidekiq_options queue: :deployments, retry: 5
sidekiq_options queue: :clusters,
lock: :until_executed,
retry: Settings.default_job_retry_count

def perform(id)
Rails.logger.info("DEPLOYMENT_PROCESS cluster_id=#{id} DeleteJob")
Expand Down
2 changes: 1 addition & 1 deletion core/app/jobs/uffizzi_core/cluster/deploy_job.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

class UffizziCore::Cluster::DeployJob < UffizziCore::ApplicationJob
sidekiq_options queue: :deployments, retry: 5
sidekiq_options queue: :clusters, retry: Settings.default_job_retry_count

def perform(id)
cluster = UffizziCore::Cluster.find(id)
Expand Down
2 changes: 1 addition & 1 deletion core/app/jobs/uffizzi_core/cluster/manage_deploying_job.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

class UffizziCore::Cluster::ManageDeployingJob < UffizziCore::ApplicationJob
sidekiq_options queue: :deployments, retry: 5
sidekiq_options queue: :clusters, retry: Settings.default_job_retry_count

def perform(id, try = 1)
cluster = UffizziCore::Cluster.find(id)
Expand Down
4 changes: 3 additions & 1 deletion core/app/jobs/uffizzi_core/deployment/delete_job.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# frozen_string_literal: true

class UffizziCore::Deployment::DeleteJob < UffizziCore::ApplicationJob
sidekiq_options queue: :deployments, retry: 5
sidekiq_options queue: :disable_deployments,
lock: :until_executed,
retry: Settings.default_job_retry_count

def perform(id)
Rails.logger.info("DEPLOYMENT_PROCESS deployment_id=#{id} DeleteJob")
Expand Down
1 change: 1 addition & 0 deletions core/uffizzi_core.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ Gem::Specification.new do |spec|
spec.add_dependency 'rswag-api'
spec.add_dependency 'rswag-ui'
spec.add_dependency 'sidekiq'
spec.add_dependency 'sidekiq-unique-jobs'
spec.add_dependency 'swagger_yard'
spec.add_dependency 'virtus'

Expand Down
Loading