capistrano3-delayed-job 1.0.1 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fd898a2c65a8b55b2a490c7b283c014ac9102b70
4
- data.tar.gz: 7ae3563d450af6d46bffcaeab1c214b056ec4803
2
+ SHA256:
3
+ metadata.gz: 0752a6724134a2b730dc23b8908e715ea7e28becc3e63014b2a41355d9fc39f4
4
+ data.tar.gz: 0200a538e00978a37c9c5a88c9cad98485deb05fbddd057f9e0e4f65def9c8e8
5
5
  SHA512:
6
- metadata.gz: f9c51a3b08ccd9fb1c670c6f990ea7f06f5f794dbe81c3ce3871d9d8b16b1db1f251996998dc8f23024663469bbde4d95208027931351cf7f39f233ab1dcd0b3
7
- data.tar.gz: 7af954d575c312cc6e3ccb89125f43f284ab2e20de1b63be6c61cd1a386013e5b2424f9d75445ac76ba4cee3678c5308390d08f0af484d873f6b64776782fd1f
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,31 +41,126 @@ 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
59
109
  set :delayed_job_roles, [:app, :background]
110
+
111
+ # Set the location of the delayed_job executable
112
+ # Can be relative to the release_path or absolute
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"]
60
131
  ```
61
132
 
62
- It also adds the following hook
133
+ It also conditionally adds the following hook:
63
134
 
64
135
  ```ruby
65
- after 'deploy:publishing', 'restart' do
66
- invoke 'delayed_job:restart'
67
- end
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
153
+ ```
154
+
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.
157
+
158
+ ```ruby
159
+ set :linked_dirs, %w(tmp/pids)
160
+
161
+ # or
162
+
163
+ set :delayed_job_pid_dir, '/tmp'
68
164
  ```
69
165
 
70
166
  ## Contributing
@@ -77,13 +173,13 @@ end
77
173
 
78
174
  ## Credits
79
175
 
80
- Thank you [contributors](https://github.com/platanus/guides/graphs/contributors)!
176
+ Thank you [contributors](https://github.com/AgileConsultingLLC/capistrano3-delayed-job/graphs/contributors)!
81
177
 
82
- <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/)
83
180
 
84
- capistrano3-delayed-job is maintained by [platanus](http://platan.us).
181
+ Originally developed by [Platanus](http://platan.us).
85
182
 
86
183
  ## License
87
184
 
88
- Guides is © 2014 platanus, spa. It is free software and may be redistributed under the terms specified in the LICENSE file.
89
-
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.0.1"
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.0.1
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-13 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,61 +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
- desc 'Stop the delayed_job process'
16
- task :stop do
17
- on roles(delayed_job_roles) do
18
- within release_path do
19
- with rails_env: fetch(:rails_env) do
20
- execute :bundle, :exec, :'script/delayed_job', :stop
21
- end
22
- end
23
- end
24
- end
25
-
26
- desc 'Start the delayed_job process'
27
- task :start do
28
- on roles(delayed_job_roles) do
29
- within release_path do
30
- with rails_env: fetch(:rails_env) do
31
- execute :bundle, :exec, :'script/delayed_job', args, :start
32
- end
33
- end
34
- end
35
- end
36
-
37
- desc 'Restart the delayed_job process'
38
- task :restart do
39
- on roles(delayed_job_roles) do
40
- within release_path do
41
- with rails_env: fetch(:rails_env) do
42
- execute :bundle, :exec, :'script/delayed_job', args, :restart
43
- end
44
- end
45
- end
46
- end
47
-
48
- after 'deploy:publishing', 'restart' do
49
- invoke 'delayed_job:restart'
50
- end
51
-
52
- end
53
-
54
- namespace :load do
55
- task :defaults do
56
- set :delayed_job_workers, 1
57
- set :delayed_job_queues, nil
58
- set :delayed_job_pool, nil
59
- set :delayed_job_roles, :app
60
- end
61
- end