activejob 5.2.4.4 → 6.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -50
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +18 -13
  5. data/lib/active_job.rb +2 -1
  6. data/lib/active_job/arguments.rb +80 -30
  7. data/lib/active_job/base.rb +6 -1
  8. data/lib/active_job/callbacks.rb +46 -3
  9. data/lib/active_job/configured_job.rb +2 -0
  10. data/lib/active_job/core.rb +40 -21
  11. data/lib/active_job/enqueuing.rb +20 -7
  12. data/lib/active_job/exceptions.rb +60 -28
  13. data/lib/active_job/execution.rb +11 -2
  14. data/lib/active_job/gem_version.rb +4 -4
  15. data/lib/active_job/instrumentation.rb +40 -0
  16. data/lib/active_job/log_subscriber.rb +140 -0
  17. data/lib/active_job/logging.rb +3 -101
  18. data/lib/active_job/queue_adapter.rb +5 -0
  19. data/lib/active_job/queue_adapters.rb +13 -11
  20. data/lib/active_job/queue_adapters/async_adapter.rb +1 -1
  21. data/lib/active_job/queue_adapters/backburner_adapter.rb +2 -2
  22. data/lib/active_job/queue_adapters/inline_adapter.rb +1 -1
  23. data/lib/active_job/queue_adapters/que_adapter.rb +2 -2
  24. data/lib/active_job/queue_adapters/sidekiq_adapter.rb +2 -2
  25. data/lib/active_job/queue_adapters/sucker_punch_adapter.rb +1 -1
  26. data/lib/active_job/queue_adapters/test_adapter.rb +32 -14
  27. data/lib/active_job/queue_name.rb +23 -3
  28. data/lib/active_job/railtie.rb +20 -1
  29. data/lib/active_job/serializers.rb +66 -0
  30. data/lib/active_job/serializers/date_serializer.rb +20 -0
  31. data/lib/active_job/serializers/date_time_serializer.rb +16 -0
  32. data/lib/active_job/serializers/duration_serializer.rb +23 -0
  33. data/lib/active_job/serializers/module_serializer.rb +20 -0
  34. data/lib/active_job/serializers/object_serializer.rb +53 -0
  35. data/lib/active_job/serializers/symbol_serializer.rb +20 -0
  36. data/lib/active_job/serializers/time_object_serializer.rb +13 -0
  37. data/lib/active_job/serializers/time_serializer.rb +16 -0
  38. data/lib/active_job/serializers/time_with_zone_serializer.rb +16 -0
  39. data/lib/active_job/test_helper.rb +316 -68
  40. data/lib/active_job/timezones.rb +13 -0
  41. data/lib/active_job/translation.rb +1 -1
  42. data/lib/rails/generators/job/job_generator.rb +4 -0
  43. metadata +29 -14
  44. data/lib/active_job/queue_adapters/qu_adapter.rb +0 -46
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveJob
4
+ module Timezones #:nodoc:
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ around_perform do |job, block|
9
+ Time.use_zone(job.timezone, &block)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -5,7 +5,7 @@ module ActiveJob
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- around_perform do |job, block, _|
8
+ around_perform do |job, block|
9
9
  I18n.with_locale(job.locale, &block)
10
10
  end
11
11
  end
@@ -28,6 +28,10 @@ module Rails # :nodoc:
28
28
  end
29
29
 
30
30
  private
31
+ def file_name
32
+ @_file_name ||= super.sub(/_job\z/i, "")
33
+ end
34
+
31
35
  def application_job_file_name
32
36
  @application_job_file_name ||= if mountable_engine?
33
37
  "app/jobs/#{namespaced_path}/application_job.rb"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activejob
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.4.4
4
+ version: 6.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-09 00:00:00.000000000 Z
11
+ date: 2021-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.4.4
19
+ version: 6.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.4.4
26
+ version: 6.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: globalid
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.3.6
41
- description: Declare job classes that can be run by a variety of queueing backends.
41
+ description: Declare job classes that can be run by a variety of queuing backends.
42
42
  email: david@loudthinking.com
43
43
  executables: []
44
44
  extensions: []
@@ -57,6 +57,8 @@ files:
57
57
  - lib/active_job/exceptions.rb
58
58
  - lib/active_job/execution.rb
59
59
  - lib/active_job/gem_version.rb
60
+ - lib/active_job/instrumentation.rb
61
+ - lib/active_job/log_subscriber.rb
60
62
  - lib/active_job/logging.rb
61
63
  - lib/active_job/queue_adapter.rb
62
64
  - lib/active_job/queue_adapters.rb
@@ -64,7 +66,6 @@ files:
64
66
  - lib/active_job/queue_adapters/backburner_adapter.rb
65
67
  - lib/active_job/queue_adapters/delayed_job_adapter.rb
66
68
  - lib/active_job/queue_adapters/inline_adapter.rb
67
- - lib/active_job/queue_adapters/qu_adapter.rb
68
69
  - lib/active_job/queue_adapters/que_adapter.rb
69
70
  - lib/active_job/queue_adapters/queue_classic_adapter.rb
70
71
  - lib/active_job/queue_adapters/resque_adapter.rb
@@ -75,20 +76,34 @@ files:
75
76
  - lib/active_job/queue_name.rb
76
77
  - lib/active_job/queue_priority.rb
77
78
  - lib/active_job/railtie.rb
79
+ - lib/active_job/serializers.rb
80
+ - lib/active_job/serializers/date_serializer.rb
81
+ - lib/active_job/serializers/date_time_serializer.rb
82
+ - lib/active_job/serializers/duration_serializer.rb
83
+ - lib/active_job/serializers/module_serializer.rb
84
+ - lib/active_job/serializers/object_serializer.rb
85
+ - lib/active_job/serializers/symbol_serializer.rb
86
+ - lib/active_job/serializers/time_object_serializer.rb
87
+ - lib/active_job/serializers/time_serializer.rb
88
+ - lib/active_job/serializers/time_with_zone_serializer.rb
78
89
  - lib/active_job/test_case.rb
79
90
  - lib/active_job/test_helper.rb
91
+ - lib/active_job/timezones.rb
80
92
  - lib/active_job/translation.rb
81
93
  - lib/active_job/version.rb
82
94
  - lib/rails/generators/job/job_generator.rb
83
95
  - lib/rails/generators/job/templates/application_job.rb.tt
84
96
  - lib/rails/generators/job/templates/job.rb.tt
85
- homepage: http://rubyonrails.org
97
+ homepage: https://rubyonrails.org
86
98
  licenses:
87
99
  - MIT
88
100
  metadata:
89
- source_code_uri: https://github.com/rails/rails/tree/v5.2.4.4/activejob
90
- changelog_uri: https://github.com/rails/rails/blob/v5.2.4.4/activejob/CHANGELOG.md
91
- post_install_message:
101
+ bug_tracker_uri: https://github.com/rails/rails/issues
102
+ changelog_uri: https://github.com/rails/rails/blob/v6.1.1/activejob/CHANGELOG.md
103
+ documentation_uri: https://api.rubyonrails.org/v6.1.1/
104
+ mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
105
+ source_code_uri: https://github.com/rails/rails/tree/v6.1.1/activejob
106
+ post_install_message:
92
107
  rdoc_options: []
93
108
  require_paths:
94
109
  - lib
@@ -96,15 +111,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
111
  requirements:
97
112
  - - ">="
98
113
  - !ruby/object:Gem::Version
99
- version: 2.2.2
114
+ version: 2.5.0
100
115
  required_rubygems_version: !ruby/object:Gem::Requirement
101
116
  requirements:
102
117
  - - ">="
103
118
  - !ruby/object:Gem::Version
104
119
  version: '0'
105
120
  requirements: []
106
- rubygems_version: 3.1.2
107
- signing_key:
121
+ rubygems_version: 3.2.3
122
+ signing_key:
108
123
  specification_version: 4
109
124
  summary: Job framework with pluggable queues.
110
125
  test_files: []
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "qu"
4
-
5
- module ActiveJob
6
- module QueueAdapters
7
- # == Qu adapter for Active Job
8
- #
9
- # Qu is a Ruby library for queuing and processing background jobs. It is
10
- # heavily inspired by delayed_job and Resque. Qu was created to overcome
11
- # some shortcomings in the existing queuing libraries.
12
- # The advantages of Qu are: Multiple backends (redis, mongo), jobs are
13
- # requeued when worker is killed, resque-like API.
14
- #
15
- # Read more about Qu {here}[https://github.com/bkeepers/qu].
16
- #
17
- # To use Qu set the queue_adapter config to +:qu+.
18
- #
19
- # Rails.application.config.active_job.queue_adapter = :qu
20
- class QuAdapter
21
- def enqueue(job, *args) #:nodoc:
22
- qu_job = Qu::Payload.new(klass: JobWrapper, args: [job.serialize]).tap do |payload|
23
- payload.instance_variable_set(:@queue, job.queue_name)
24
- end.push
25
-
26
- # qu_job can be nil depending on the configured backend
27
- job.provider_job_id = qu_job.id unless qu_job.nil?
28
- qu_job
29
- end
30
-
31
- def enqueue_at(job, timestamp, *args) #:nodoc:
32
- raise NotImplementedError, "This queueing backend does not support scheduling jobs. To see what features are supported go to http://api.rubyonrails.org/classes/ActiveJob/QueueAdapters.html"
33
- end
34
-
35
- class JobWrapper < Qu::Job #:nodoc:
36
- def initialize(job_data)
37
- @job_data = job_data
38
- end
39
-
40
- def perform
41
- Base.execute @job_data
42
- end
43
- end
44
- end
45
- end
46
- end