async-job-adapter-active_job 0.13.0 → 0.14.0

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
2
  SHA256:
3
- metadata.gz: 3d4be983547a0c60486b8b1aae93ab56cbaee13f02eaf92f453449dfb9826dd1
4
- data.tar.gz: b7d2dc7848fd46112f89a9f071f5f541bbbcecce7de2f45d477eaeb3c2dd4adb
3
+ metadata.gz: 2dd9f7593bc4e508c98ca5cff8a163fc594872625467667138213a3ab8f2ed78
4
+ data.tar.gz: 78d52a6b38482a80ee4c227d8f753baa2662d313d6a59e284f35de2e00b84e32
5
5
  SHA512:
6
- metadata.gz: ab85aae290c2f4673fb7d0ef65b96c94c50e3d511fb8148686e51d5bf31564f1ac4449fb3d3df655cc4115d45c20f0fd0c4f3cc5c07cca2925d3e93b06e6bbba
7
- data.tar.gz: d84e38626ff2774069444432a29704206195403592e15b1b57a57c52cfa5e485ddcafe042357b6a0df447b7babb2a0774348460ebd979afeea3f436fab8e1131
6
+ metadata.gz: f205bafb6e23f4eed08575db38d96ec18e4f7e9bad444830b03b6e5a33fac62d91749f0e2ab4bf0328a2fa5192ee19bbdcf182c792de83464555871112674e26
7
+ data.tar.gz: e239ac52ec5e7bfae69347c3dcedd4cb0d6dffae60114bcdad4e3c3528c66a49b1bf2c2e4b940ea447b631abb028192336aab1e81b6806fdb7a3539118b532c8
checksums.yaml.gz.sig CHANGED
Binary file
@@ -7,13 +7,8 @@ require 'async/service/controller'
7
7
  require 'async/job/adapter/active_job/environment'
8
8
 
9
9
  configuration = Async::Service::Configuration.build do
10
- service "async-job-server" do
10
+ service "async-job-adapter-active_job-server" do
11
11
  include Async::Job::Adapter::ActiveJob::Environment
12
-
13
- root {ENV.fetch('RAILS_ROOT', Dir.pwd)}
14
-
15
- # If you have multiple queues, you may want to run a separate server for each queue.
16
- queue_name ENV.fetch('ASYNC_JOB_ADAPTER_ACTIVE_JOB_QUEUE_NAME', 'default')
17
12
  end
18
13
  end
19
14
 
@@ -50,6 +50,10 @@ module Async
50
50
  self[name].server.start
51
51
  end
52
52
 
53
+ def keys
54
+ @definitions.keys
55
+ end
56
+
53
57
  private def build(definition)
54
58
  builder = Builder.new(Executor::DEFAULT)
55
59
 
@@ -16,9 +16,21 @@ module Async
16
16
  Service
17
17
  end
18
18
 
19
+ def root
20
+ ENV.fetch('RAILS_ROOT', Dir.pwd)
21
+ end
22
+
23
+ def dispatcher
24
+ Railtie.dispatcher
25
+ end
26
+
19
27
  # The name of the queue to use.
20
- def queue_name
21
- "default"
28
+ def queue_names
29
+ if queue_names = ENV['ASYNC_JOB_ADAPTER_ACTIVE_JOB_QUEUE_NAMES']
30
+ queue_names.split(',')
31
+ else
32
+ dispatcher.keys
33
+ end
22
34
  end
23
35
  end
24
36
  end
@@ -4,6 +4,8 @@
4
4
  # Copyright, 2024, by Samuel Williams.
5
5
 
6
6
  require 'async/service/generic'
7
+ require 'console/event/failure'
8
+ require 'async/barrier'
7
9
 
8
10
  module Async
9
11
  module Job
@@ -15,12 +17,29 @@ module Async
15
17
  def setup(container)
16
18
  container.run(name: self.name, restart: true) do |instance|
17
19
  evaluator = @environment.evaluator
20
+
18
21
  require File.expand_path('config/environment', evaluator.root)
19
22
 
23
+ dispatcher = evaluator.dispatcher
24
+
20
25
  instance.ready!
21
26
 
22
- Sync do
23
- Railtie.start(evaluator.queue_name)
27
+ Sync do |task|
28
+ barrier = Async::Barrier.new
29
+
30
+ # Start all the named queues:
31
+ evaluator.queue_names.each do |queue_name|
32
+ barrier.async do
33
+ Console.debug(self, "Starting queue...", queue_name: queue_name)
34
+ dispatcher.start(queue_name)
35
+ rescue => error
36
+ Console::Event::Failure.for(error).emit(self, "Queue failed!")
37
+ end
38
+ end
39
+
40
+ barrier.wait
41
+ ensure
42
+ barrier.stop
24
43
  end
25
44
  end
26
45
  end
@@ -44,6 +44,11 @@ module Async
44
44
  def start(name)
45
45
  dispatcher.start(name)
46
46
  end
47
+
48
+ # The names of all the queues that are available for processing jobs.
49
+ def keys
50
+ @definitions.keys
51
+ end
47
52
  end
48
53
  end
49
54
  end
@@ -7,7 +7,7 @@ module Async
7
7
  module Job
8
8
  module Adapter
9
9
  module ActiveJob
10
- VERSION = "0.13.0"
10
+ VERSION = "0.14.0"
11
11
  end
12
12
  end
13
13
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-job-adapter-active_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
metadata.gz.sig CHANGED
Binary file