Skip to content

Commit 6db170d

Browse files
authored
Add threads parameter for delayed workers (#447)
1 parent b74d5a3 commit 6db170d

File tree

6 files changed

+33
-0
lines changed

6 files changed

+33
-0
lines changed

jobs/cloud_controller_ng/spec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,8 @@ properties:
378378
description: "When enabled, the priority of asynchronous jobs will be increased by 1 for each active asynchronous job for that user.
379379
This prevents that a single user, who creates many asynchronous jobs, slows down job execution for other users."
380380
default: false
381+
cc.jobs.number_of_worker_threads:
382+
description: "If set multiple delayed job workers will be started as threads in the same process. If not set there will be one delayed job worker per process."
381383

382384
cc.temporary_disable_deployments:
383385
description: "Do not allow the API client to create app deployments (temporary)"

jobs/cloud_controller_ng/templates/cloud_controller_ng.yml.erb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ jobs:
9494
<% if_p("cc.jobs.priorities") do |priorities| %>
9595
priorities: <%= priorities.to_json %>
9696
<% end %>
97+
<% if_p("cc.jobs.number_of_worker_threads") do |number_of_worker_threads| %>
98+
number_of_worker_threads: <%= number_of_worker_threads %>
99+
<% end %>
100+
97101

98102
cpu_weight_min_memory: <%= p("cc.cpu_weight_min_memory") %>
99103
cpu_weight_max_memory: <%= p("cc.cpu_weight_max_memory") %>

jobs/cloud_controller_worker/spec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ properties:
123123
description: "Maximum health check timeout (in seconds) that can be set for the app"
124124
cc.jobs.priorities:
125125
description: "List of hashes containing delayed jobs 'display_name' and its desired priority. This will overwrite the default priority of ccng"
126+
cc.jobs.number_of_worker_threads:
127+
description: "If set multiple delayed job workers will be started as threads in the same process. If not set there will be one delayed job worker per process."
126128

127129
cc.staging_upload_user:
128130
description: "User name used to access internal endpoints of Cloud Controller to upload files when staging"

jobs/cloud_controller_worker/templates/cloud_controller_ng.yml.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ jobs:
5454
<% if_p("cc.jobs.priorities") do |priorities| %>
5555
priorities: <%= priorities.to_json %>
5656
<% end %>
57+
<% if_p("cc.jobs.number_of_worker_threads") do |number_of_worker_threads| %>
58+
number_of_worker_threads: <%= number_of_worker_threads %>
59+
<% end %>
5760

5861
default_app_memory: <%= p("cc.default_app_memory") %>
5962
default_app_disk_in_mb: <%= p("cc.default_app_disk_in_mb") %>

spec/cloud_controller_ng/cloud_controller_ng_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,17 @@ module Test
710710
end
711711
end
712712
end
713+
714+
describe 'cc_jobs_number_of_worker_threads' do
715+
context "when 'cc.jobs.number_of_worker_threads' is set" do
716+
before { merged_manifest_properties['cc']['jobs'] = { 'number_of_worker_threads' => 7 } }
717+
718+
it 'renders the correct value into the ccng config' do
719+
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
720+
expect(template_hash['jobs']['number_of_worker_threads']).to eq(7)
721+
end
722+
end
723+
end
713724
end
714725
end
715726
end

spec/cloud_controller_worker/cloud_controller_worker_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,17 @@ module Test
249249
end
250250
end
251251
end
252+
253+
describe 'cc_jobs_number_of_worker_threads' do
254+
context "when 'cc.jobs.number_of_worker_threads' is set" do
255+
before { manifest_properties['cc']['jobs'] = { 'number_of_worker_threads' => 7 } }
256+
257+
it 'renders the correct value into the ccng config' do
258+
template_hash = YAML.safe_load(template.render(manifest_properties, consumes: links))
259+
expect(template_hash['jobs']['number_of_worker_threads']).to eq(7)
260+
end
261+
end
262+
end
252263
end
253264
end
254265
end

0 commit comments

Comments
 (0)