capistrano3-delayed-job 1.1.0 → 1.7.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 77a24920733ed73310cf1e7dc67b1d292c69be8a
4
- data.tar.gz: a680cae89fee85459df187d9a7db653cd1b5a0a7
2
+ SHA256:
3
+ metadata.gz: 0752a6724134a2b730dc23b8908e715ea7e28becc3e63014b2a41355d9fc39f4
4
+ data.tar.gz: 0200a538e00978a37c9c5a88c9cad98485deb05fbddd057f9e0e4f65def9c8e8
5
5
  SHA512:
6
- metadata.gz: 5a012ebf0aac651a4c6ecfc285f18c7946d4126954c2eea861203e31b22cc7a446b50a201d3c4f8452622d4850b81028fe035804bb0aaf352376a8cc605a0b62
7
- data.tar.gz: a33a1905e0f370303f0443dd009b9a54fc658b126f8be69f1195041468b60e0cf08645ca0966d8c6928d5eed8c36c18d120209905df216bac2c6f63d63740d35
6
+ metadata.gz: d55acc6151887e61e09ad8266f1fa3a6bf266100691e8842df6cee2d85dddd0e0426e86147c237f377175abe83bfcf90dd091d2a9de70f65a9f515a72f7c7c78
7
+ data.tar.gz: 53ebf37ad1879ce6127863874737065576dc524a1dff389851f866e3bb96900f955604331cbc1b92ed0c3892a11ec9329f5334d3f150bd051011b2191dc18b7c
data/.rubocop.yml ADDED
@@ -0,0 +1,56 @@
1
+ # Should just disable for 'lib/capistrano/tasks/delayed_job.rake'
2
+
3
+ Metrics/AbcSize:
4
+ Max: 16
5
+
6
+ Metrics/MethodLength:
7
+ Max: 10
8
+
9
+ Metrics/CyclomaticComplexity:
10
+ Max: 7
11
+
12
+ Metrics/PerceivedComplexity:
13
+ Max: 7
14
+
15
+ Metrics/LineLength:
16
+ Max: 120
17
+
18
+ Style/FileName:
19
+ Exclude:
20
+ - 'lib/capistrano3-delayed-job.rb'
21
+ - 'lib/capistrano/delayed-job.rb'
22
+
23
+ Style/PercentLiteralDelimiters:
24
+ PreferredDelimiters:
25
+ '%': '{}'
26
+ '%i': '[]'
27
+ '%q': '{}'
28
+ '%Q': '{}'
29
+ '%r': '{}'
30
+ '%s': ()
31
+ '%w': '[]'
32
+ '%W': '[]'
33
+ '%x': ()
34
+
35
+ Style/StringLiterals:
36
+ Enabled: false
37
+
38
+ Style/SpaceAfterComma: # really want a way to allow Array(something)[-1,1]
39
+ Enabled: false
40
+
41
+ Style/SpaceAroundEqualsInParameterDefault:
42
+ EnforcedStyle: no_space
43
+
44
+ Style/SpaceAroundOperators:
45
+ AllowForAlignment: true
46
+ Enabled: false
47
+
48
+ Style/SpaceInsideBlockBraces:
49
+ EnforcedStyle: space
50
+ EnforcedStyleForEmptyBraces: no_space
51
+ # Space between { and |. Overrides EnforcedStyle if there is a conflict.
52
+ SpaceBeforeBlockParameters: false
53
+
54
+ Style/UnneededPercentQ:
55
+ Exclude:
56
+ - 'capistrano3-delayed-job.gemspec'
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Juan Ignacio Donoso
1
+ Copyright (c) 2016 Platanus SpA
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -22,15 +22,16 @@ Or install it yourself as:
22
22
  Require in `Capfile` to use the default task:
23
23
 
24
24
  ```ruby
25
- require 'capistrano/delayed-job'
25
+ require 'capistrano/delayed_job'
26
26
  ```
27
27
 
28
28
  You will get the following tasks
29
29
 
30
30
  ```ruby
31
- cap delayed_job:start # Start delayed_job service
32
- cap delayed_job:stop # Stop delayed_job service
33
- cap delayed_job:reload # Reload delayed_job service
31
+ cap delayed_job:restart # Restart the delayed_job process
32
+ cap delayed_job:start # Start the delayed_job process
33
+ cap delayed_job:status # Status of the delayed_job process
34
+ cap delayed_job:stop # Stop the delayed_job process
34
35
  ```
35
36
 
36
37
  Configurable options (copy into deploy.rb), shown here with examples:
@@ -40,19 +41,68 @@ Configurable options (copy into deploy.rb), shown here with examples:
40
41
  # default value: 1
41
42
  set :delayed_job_workers, 2
42
43
 
44
+ # String to be prefixed to worker process names
45
+ # This feature allows a prefix name to be placed in front of the process.
46
+ # For example: reports/delayed_job.0 instead of just delayed_job.0
47
+ set :delayed_job_prefix, 'reports'
48
+
43
49
  # Delayed_job queue or queues
44
50
  # Set the --queue or --queues option to work from a particular queue.
45
51
  # default value: nil
46
52
  set :delayed_job_queues, ['mailer','tracking']
47
53
 
48
54
  # Specify different pools
49
- # You can use this option multiple times to start different numbers of workers for different queues.
55
+ # You can use this option multiple times to start different numbers of workers
56
+ # for different queues.
57
+ # NOTE: When using delayed_job_pools, the settings for delayed_job_workers and
58
+ # delayed_job_queues are ignored.
50
59
  # default value: nil
51
- set :delayed_job_pool, {
52
- :mailer => 2,
53
- :tracking => 1,
54
- :* => 2
55
- }
60
+ #
61
+ # Single pool of 3 workers looking at all queues: (when alone, '*' is a
62
+ # special case meaning any queue)
63
+ # set :delayed_job_pools, { '*' => 3 }
64
+ # set :delayed_job_pools, { '' => 3 }
65
+ # set :delayed_job_pools, { nil => 3 }
66
+ #
67
+ # Several queues, some with their own dedicated pools: (symbol keys will be
68
+ # converted to strings)
69
+ # set :delayed_job_pools, {
70
+ # :mailer => 2, # 2 workers looking only at the 'mailer' queue
71
+ # :tracking => 1, # 1 worker exclusively for the 'tracking' queue
72
+ # :* => 2 # 2 on any queue (including 'mailer' and 'tracking')
73
+ # }
74
+ #
75
+ # Several workers each handling one or more queues:
76
+ # set :delayed_job_pools, {
77
+ # 'high_priority' => 1, # one just for the important stuff
78
+ # 'high_priority,*' => 1, # never blocked by low_priority jobs
79
+ # 'high_priority,*,low_priority' => 1, # works on whatever is available
80
+ # '*,low_priority' => 1, # high_priority doesn't starve the little guys
81
+ # }
82
+
83
+ # If you have several servers handling Delayed Jobs and you want to configure
84
+ # different pools per server, you can define delayed_job_pools_per_server:
85
+ #
86
+ # set :delayed_job_pools_per_server, {
87
+ # 'server11-prod' => {
88
+ # 'default,emails' => 3,
89
+ # 'loud_notifications' => 1,
90
+ # 'silent_notifications' => 1,
91
+ # },
92
+ # 'server12-prod' => {
93
+ # 'default' => 2
94
+ # }
95
+ # }
96
+
97
+ # Server names (server11-prod, server12-prod) in :delayed_job_pools_per_server
98
+ # must match the hostnames on Delayed Job servers. You can verify it by running
99
+ # `hostname` on your servers.
100
+
101
+ # If you use :delayed_job_pools_per_server, :delayed_job_pools will be ignored.
102
+
103
+ # Identification is assigned in order 0..3.
104
+ # Note that the '*' in this case is actually a queue with that name and does
105
+ # not mean any queue as it is not used alone, but alongside other queues.
56
106
 
57
107
  # Set the roles where the delayed_job process should be started
58
108
  # default value: :app
@@ -60,16 +110,57 @@ set :delayed_job_roles, [:app, :background]
60
110
 
61
111
  # Set the location of the delayed_job executable
62
112
  # Can be relative to the release_path or absolute
63
- # default value 'bin'
64
- set :delayed_job_bin_path: 'scripts' # for rails 3.x
113
+ # default value: 'bin'
114
+ # set :delayed_job_bin_path, 'script' # for rails 3.x
115
+
116
+ # To pass the `-m` option to the delayed_job executable which will cause each
117
+ # worker to be monitored when daemonized.
118
+ # set :delayed_job_monitor, true
119
+
120
+ ### Set the location of the delayed_job.log logfile
121
+ # default value: "#{Rails.root}/log" or "#{Dir.pwd}/log"
122
+ # set :delayed_log_dir, 'path_to_log_dir'
123
+
124
+ ### Set the location of the delayed_job pid file(s)
125
+ # default value: "#{Rails.root}/tmp/pids" or "#{Dir.pwd}/tmp/pids"
126
+ # set :delayed_job_pid_dir, 'path_to_pid_dir'
127
+
128
+ ### Set the options to be passed along to daemons when starting/stopping/restarting delayed_job workers
129
+ # options supported by daemons can be found at https://github.com/thuehlinger/daemons/blob/master/lib/daemons/cmdline.rb
130
+ # set :delayed_job_daemon_opts, ["no_wait", "shush"]
131
+ ```
132
+
133
+ It also conditionally adds the following hook:
134
+
135
+ ```ruby
136
+ if Rake::Task.task_defined?('deploy:published')
137
+ after 'deploy:published', 'delayed_job:default'
138
+ end
139
+ ```
140
+
141
+ Where the `delayed_job:default` is defined as:
142
+
143
+ ```ruby
144
+ task :default do
145
+ invoke 'delayed_job:restart' if fetch(:delayed_job_default_hooks, true)
146
+ end
147
+ ```
148
+
149
+ Thus you can disable default hook by setting `delayed_job_default_hooks` to `false`. (It still gets _defined_, but will not do anything when called.)
150
+
151
+ ```ruby
152
+ set :delayed_job_default_hooks, false
65
153
  ```
66
154
 
67
- It also adds the following hook
155
+ Following setting is recommended to avoid stop/restart problem.
156
+ See [Issue #16](https://github.com/platanus/capistrano3-delayed-job/issues/16) or [PR #22](https://github.com/platanus/capistrano3-delayed-job/pull/22) for more detail.
68
157
 
69
158
  ```ruby
70
- after 'deploy:publishing', 'restart' do
71
- invoke 'delayed_job:restart'
72
- end
159
+ set :linked_dirs, %w(tmp/pids)
160
+
161
+ # or
162
+
163
+ set :delayed_job_pid_dir, '/tmp'
73
164
  ```
74
165
 
75
166
  ## Contributing
@@ -82,13 +173,13 @@ end
82
173
 
83
174
  ## Credits
84
175
 
85
- Thank you [contributors](https://github.com/platanus/guides/graphs/contributors)!
176
+ Thank you [contributors](https://github.com/AgileConsultingLLC/capistrano3-delayed-job/graphs/contributors)!
86
177
 
87
- <img src="http://platan.us/gravatar_with_text.png" alt="Platanus" width="250"/>
178
+ capistrano3-delayed-job is maintained [Rob Biedenharn](https://github.com/rab) and
179
+ [![Logo of Agile Consulting LLC](http://agileconsultingllc.com/agile-logo-small.png "Agile Consulting LLC")](http://agileconsultingllc.com/)
88
180
 
89
- capistrano3-delayed-job is maintained by [platanus](http://platan.us).
181
+ Originally developed by [Platanus](http://platan.us).
90
182
 
91
183
  ## License
92
184
 
93
- Guides is © 2014 platanus, spa. It is free software and may be redistributed under the terms specified in the LICENSE file.
94
-
185
+ capistrano3-delayed-job is © 2016 Platanus SpA. It is free software and may be redistributed under the terms specified in the LICENSE file.
data/Rakefile CHANGED
@@ -1,2 +1 @@
1
1
  require "bundler/gem_tasks"
2
-
@@ -1,23 +1,32 @@
1
1
  # coding: utf-8
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
 
5
6
  Gem::Specification.new do |spec|
6
7
  spec.name = "capistrano3-delayed-job"
7
- spec.version = "1.1.0"
8
- spec.authors = ["Juan Ignacio Donoso", "Agustin Feuerhake", "Ignacio Baixas"]
9
- spec.email = ["juan.ignacio@platan.us", "agustin@platan.us", "ignacio@platanus"]
8
+ spec.version = "1.7.6"
9
+ spec.authors = ["Rob Biedenharn",
10
+ "Juan Ignacio Donoso",
11
+ "Agustin Feuerhake",
12
+ "Ignacio Baixas"]
13
+ spec.email = ["rob_biedenharn@alum.mit.edu",
14
+ "juan.ignacio@platan.us",
15
+ "agustin@platan.us",
16
+ "ignacio@platan.us"]
10
17
  spec.summary = %q{Adds support for delayed_jobs to Capistrano 3.x}
11
- spec.description = %q{Adds support for delayed_jobs to Capistrano 3.x}
12
- spec.homepage = ""
18
+ spec.description = %q{Manage start/stop/restart/status of DelayedJob workers using Capistrano 3}
19
+ spec.homepage = "https://github.com/AgileConsultingLLC/capistrano3-delayed-job"
13
20
  spec.license = "MIT"
14
21
 
15
22
  spec.files = `git ls-files -z`.split("\x0")
16
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
+ spec.executables = spec.files.grep(%r{^bin/}) {|f| File.basename(f) }
17
24
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
25
  spec.require_paths = ["lib"]
19
26
 
20
- spec.add_dependency 'capistrano', '>= 3.0.0'
27
+ spec.add_dependency 'capistrano', '~> 3.0', '>= 3.0.0'
28
+ spec.add_dependency 'daemons', '~> 1.3'
21
29
 
22
- spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_development_dependency "rake", ">= 10.0"
31
+ spec.add_development_dependency "rubocop", "~> 0.0", '>= 0.39.0'
23
32
  end
@@ -1 +1,2 @@
1
- load File.expand_path('../tasks/delayed-job.rake', __FILE__)
1
+ warn %{"require 'capistrano/delayed-job'" is deprecated; please use "require 'capistrano/delayed_job'" in #{Kernel.caller(1,1).first}} # rubocop:disable Metrics/LineLength
2
+ require_relative 'delayed_job'
@@ -0,0 +1 @@
1
+ load File.expand_path('../tasks/delayed_job.rake', __FILE__)
@@ -0,0 +1,102 @@
1
+ # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/BlockLength
2
+ # rubocop:disable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
3
+ # rubocop:disable Style/SpaceInsideParens, Style/EmptyLinesAroundBlockBody
4
+
5
+ namespace :delayed_job do
6
+
7
+ def delayed_job_args
8
+ args = []
9
+ args << "-m" if fetch(:delayed_job_monitor) # could be set to false
10
+ args << "-n #{fetch(:delayed_job_workers)}" unless fetch(:delayed_job_workers).nil?
11
+ args << "--queues=#{fetch(:delayed_job_queues).join(',')}" unless fetch(:delayed_job_queues).nil?
12
+ args << "--prefix=#{fetch(:delayed_job_prefix)}" unless fetch(:delayed_job_prefix).nil?
13
+ args << "--pid-dir=#{fetch(:delayed_job_pid_dir)}" unless fetch(:delayed_job_pid_dir).nil?
14
+ args << "--log-dir=#{fetch(:delayed_log_dir)}" unless fetch(:delayed_log_dir).nil?
15
+ if fetch(:delayed_job_pools_per_server, nil)
16
+ server = capture(:hostname)
17
+ args << fetch(:delayed_job_pools_per_server, {})[server].map {|k,v| "--pool='#{k}:#{v}'" }.join(' ')
18
+ elsif fetch(:delayed_job_pools, nil)
19
+ args << fetch(:delayed_job_pools, {}).map {|k,v| "--pool='#{k}:#{v}'" }.join(' ')
20
+ end
21
+ unless fetch(:delayed_job_daemon_opts).nil?
22
+ args << "--daemon-options='--#{fetch(:delayed_job_daemon_opts, []).join(',--')}'"
23
+ end
24
+ args.join(' ')
25
+ end
26
+
27
+ def delayed_job_roles
28
+ fetch(:delayed_job_roles)
29
+ end
30
+
31
+ def delayed_job_bin
32
+ Pathname.new(fetch(:delayed_job_bin_path)).join('delayed_job')
33
+ end
34
+
35
+ desc 'Stop the delayed_job process'
36
+ task :stop do
37
+ on roles(delayed_job_roles) do
38
+ within release_path do
39
+ with rails_env: fetch(:rails_env) do
40
+ execute :bundle, :exec, delayed_job_bin, delayed_job_args, :stop
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ desc 'Start the delayed_job process'
47
+ task :start do
48
+ on roles(delayed_job_roles) do
49
+ within release_path do
50
+ with rails_env: fetch(:rails_env) do
51
+ execute :bundle, :exec, delayed_job_bin, delayed_job_args, :start
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ desc 'Status of the delayed_job process'
58
+ task :status do
59
+ on roles(delayed_job_roles) do
60
+ within release_path do
61
+ with rails_env: fetch(:rails_env) do
62
+ capture( :bundle, :exec, delayed_job_bin, delayed_job_args, :status ).each_line do |line|
63
+ info line
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ desc 'Restart the delayed_job process'
71
+ task :restart do
72
+ on roles(delayed_job_roles) do
73
+ within release_path do
74
+ with rails_env: fetch(:rails_env) do
75
+ execute :bundle, :exec, delayed_job_bin, delayed_job_args, :restart
76
+ end
77
+ end
78
+ end
79
+ end
80
+
81
+ desc 'Default task - conditionally restart'
82
+ task :default do
83
+ invoke 'delayed_job:restart' if fetch(:delayed_job_default_hooks, true)
84
+ end
85
+
86
+ if Rake::Task.task_defined?('deploy:published')
87
+ after 'deploy:published', 'delayed_job:default'
88
+ end
89
+ end
90
+
91
+ namespace :load do
92
+ task :defaults do
93
+ set :delayed_job_workers, 1
94
+ set :delayed_job_queues, nil
95
+ set :delayed_job_pools, nil
96
+ set :delayed_job_pools_per_server, nil
97
+ set :delayed_job_roles, :app
98
+ set :delayed_job_bin_path, 'bin'
99
+ set :delayed_job_monitor, nil
100
+ set :delayed_job_default_hooks, true
101
+ end
102
+ end
metadata CHANGED
@@ -1,64 +1,109 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano3-delayed-job
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.7.6
5
5
  platform: ruby
6
6
  authors:
7
+ - Rob Biedenharn
7
8
  - Juan Ignacio Donoso
8
9
  - Agustin Feuerhake
9
10
  - Ignacio Baixas
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2014-12-16 00:00:00.000000000 Z
14
+ date: 2019-01-11 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: capistrano
17
18
  requirement: !ruby/object:Gem::Requirement
18
19
  requirements:
19
- - - '>='
20
+ - - ">="
20
21
  - !ruby/object:Gem::Version
21
22
  version: 3.0.0
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '3.0'
22
26
  type: :runtime
23
27
  prerelease: false
24
28
  version_requirements: !ruby/object:Gem::Requirement
25
29
  requirements:
26
- - - '>='
30
+ - - ">="
27
31
  - !ruby/object:Gem::Version
28
32
  version: 3.0.0
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '3.0'
36
+ - !ruby/object:Gem::Dependency
37
+ name: daemons
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.3'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.3'
29
50
  - !ruby/object:Gem::Dependency
30
51
  name: rake
31
52
  requirement: !ruby/object:Gem::Requirement
32
53
  requirements:
33
- - - ~>
54
+ - - ">="
34
55
  - !ruby/object:Gem::Version
35
56
  version: '10.0'
36
57
  type: :development
37
58
  prerelease: false
38
59
  version_requirements: !ruby/object:Gem::Requirement
39
60
  requirements:
40
- - - ~>
61
+ - - ">="
41
62
  - !ruby/object:Gem::Version
42
63
  version: '10.0'
43
- description: Adds support for delayed_jobs to Capistrano 3.x
64
+ - !ruby/object:Gem::Dependency
65
+ name: rubocop
66
+ requirement: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '0.0'
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 0.39.0
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '0.0'
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.39.0
84
+ description: Manage start/stop/restart/status of DelayedJob workers using Capistrano
85
+ 3
44
86
  email:
87
+ - rob_biedenharn@alum.mit.edu
45
88
  - juan.ignacio@platan.us
46
89
  - agustin@platan.us
47
- - ignacio@platanus
90
+ - ignacio@platan.us
48
91
  executables: []
49
92
  extensions: []
50
93
  extra_rdoc_files: []
51
94
  files:
52
- - .gitignore
95
+ - ".gitignore"
96
+ - ".rubocop.yml"
53
97
  - Gemfile
54
98
  - LICENSE.txt
55
99
  - README.md
56
100
  - Rakefile
57
101
  - capistrano3-delayed-job.gemspec
58
102
  - lib/capistrano/delayed-job.rb
59
- - lib/capistrano/tasks/delayed-job.rake
103
+ - lib/capistrano/delayed_job.rb
104
+ - lib/capistrano/tasks/delayed_job.rake
60
105
  - lib/capistrano3-delayed-job.rb
61
- homepage: ''
106
+ homepage: https://github.com/AgileConsultingLLC/capistrano3-delayed-job
62
107
  licenses:
63
108
  - MIT
64
109
  metadata: {}
@@ -68,17 +113,16 @@ require_paths:
68
113
  - lib
69
114
  required_ruby_version: !ruby/object:Gem::Requirement
70
115
  requirements:
71
- - - '>='
116
+ - - ">="
72
117
  - !ruby/object:Gem::Version
73
118
  version: '0'
74
119
  required_rubygems_version: !ruby/object:Gem::Requirement
75
120
  requirements:
76
- - - '>='
121
+ - - ">="
77
122
  - !ruby/object:Gem::Version
78
123
  version: '0'
79
124
  requirements: []
80
- rubyforge_project:
81
- rubygems_version: 2.0.14
125
+ rubygems_version: 3.0.2
82
126
  signing_key:
83
127
  specification_version: 4
84
128
  summary: Adds support for delayed_jobs to Capistrano 3.x
@@ -1,66 +0,0 @@
1
- namespace :delayed_job do
2
-
3
- def args
4
- args = ""
5
- args += "-n #{fetch(:delayed_job_workers)}" unless fetch(:delayed_job_workers).nil?
6
- args += " --queues=#{fetch(:delayed_job_queues).join(',')} " unless fetch(:delayed_job_queues).nil?
7
- args += fetch(:delayed_job_pool).map {|k,v| "--pool=#{k}:#{v}"}.join(' ') unless fetch(:delayed_job_pool).nil?
8
- args
9
- end
10
-
11
- def delayed_job_roles
12
- fetch(:delayed_job_roles)
13
- end
14
-
15
- def delayed_job_bin
16
- Pathname.new(fetch(:delayed_job_bin_path)).join('delayed_job')
17
- end
18
-
19
- desc 'Stop the delayed_job process'
20
- task :stop do
21
- on roles(delayed_job_roles) do
22
- within release_path do
23
- with rails_env: fetch(:rails_env) do
24
- execute :bundle, :exec, delayed_job_bin, :stop
25
- end
26
- end
27
- end
28
- end
29
-
30
- desc 'Start the delayed_job process'
31
- task :start do
32
- on roles(delayed_job_roles) do
33
- within release_path do
34
- with rails_env: fetch(:rails_env) do
35
- execute :bundle, :exec, delayed_job_bin, args, :start
36
- end
37
- end
38
- end
39
- end
40
-
41
- desc 'Restart the delayed_job process'
42
- task :restart do
43
- on roles(delayed_job_roles) do
44
- within release_path do
45
- with rails_env: fetch(:rails_env) do
46
- execute :bundle, :exec, delayed_job_bin, args, :restart
47
- end
48
- end
49
- end
50
- end
51
-
52
- after 'deploy:publishing', 'restart' do
53
- invoke 'delayed_job:restart'
54
- end
55
-
56
- end
57
-
58
- namespace :load do
59
- task :defaults do
60
- set :delayed_job_workers, 1
61
- set :delayed_job_queues, nil
62
- set :delayed_job_pool, nil
63
- set :delayed_job_roles, :app
64
- set :delayed_job_bin_path, 'bin'
65
- end
66
- end