faktory_worker_ruby 0.7.0 → 0.7.1

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
  SHA1:
3
- metadata.gz: 672affacf993528eedff478961a96bbc222e62bc
4
- data.tar.gz: 8b58b6e46e4d6965690bc4a17f3067548671edd0
3
+ metadata.gz: 5d427c1c0dc267c3debcf7fd725fab9a628f7d0d
4
+ data.tar.gz: 92c6b2099292bc46e2eaf22ba3be5c9f3dadf6b0
5
5
  SHA512:
6
- metadata.gz: 7210a8933baf0a671a608d41b5bb183fec3ea93b5c233c937c3882e921634d1baedb5985be1ecd6142ee1ca9257d3483012a7511f40c4f58fc4c13d0f34a4f4f
7
- data.tar.gz: 1a2e769ad7b96d539842e29c7056e36523d878cb81ccda8610247b99e8f239877dfbe7caee93be6d194213801c2a31fbfb876c69f5a5850bad6b15461661c4e4
6
+ metadata.gz: e856cbcb98527d2b38c000d87cfbced657f42b7956a7090014946c9131b4771f239683df586c084ad17b4e2f07f2e7f9560c62f7f438db99c523e276136540a6
7
+ data.tar.gz: 44ce04a5b7346b1e8965b917ac9ecaad179936b62fb7dc4107e1cd9fe2155da0ff549c2ef91551c5f18b75daeec5f87a5aa8b38b4b628c3ab9ef4ba0147eb776
data/Changes.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changes
2
2
 
3
+ ## 0.7.1
4
+
5
+ - Add an ActiveJob adapter for Faktory.
6
+
7
+ [#17, jagthedrummer]
8
+
3
9
  ## 0.7.0
4
10
 
5
11
  - Add testing API, almost identical to Sidekiq's `sidekiq/testing` API.
data/Gemfile.lock CHANGED
@@ -1,21 +1,38 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- faktory_worker_ruby (0.7.0)
4
+ faktory_worker_ruby (0.7.1)
5
5
  connection_pool (~> 2.2, >= 2.2.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ activejob (5.1.5)
11
+ activesupport (= 5.1.5)
12
+ globalid (>= 0.3.6)
13
+ activesupport (5.1.5)
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ i18n (~> 0.7)
16
+ minitest (~> 5.1)
17
+ tzinfo (~> 1.1)
18
+ concurrent-ruby (1.0.5)
10
19
  connection_pool (2.2.1)
20
+ globalid (0.4.1)
21
+ activesupport (>= 4.2.0)
22
+ i18n (0.9.5)
23
+ concurrent-ruby (~> 1.0)
11
24
  minitest (5.10.3)
12
25
  minitest-hooks (1.4.2)
13
26
  rake (12.1.0)
27
+ thread_safe (0.3.6)
28
+ tzinfo (1.2.5)
29
+ thread_safe (~> 0.1)
14
30
 
15
31
  PLATFORMS
16
32
  ruby
17
33
 
18
34
  DEPENDENCIES
35
+ activejob (>= 5.1.5)
19
36
  faktory_worker_ruby!
20
37
  minitest (~> 5)
21
38
  minitest-hooks
@@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.required_ruby_version = ">= 2.2.2"
18
18
 
19
19
  gem.add_dependency 'connection_pool', '~> 2.2', ">= 2.2.1"
20
+ gem.add_development_dependency 'activejob', '>= 5.1.5'
20
21
  gem.add_development_dependency 'minitest', '~> 5'
21
22
  gem.add_development_dependency 'minitest-hooks'
22
23
  gem.add_development_dependency 'rake', '~> 12'
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_job'
4
+
5
+ module ActiveJob
6
+ module QueueAdapters
7
+ # == Faktory adapter for Active Job
8
+ #
9
+ # To use Faktory set the queue_adapter config to +:faktory+.
10
+ #
11
+ # Rails.application.config.active_job.queue_adapter = :faktory
12
+ class FaktoryAdapter
13
+ def enqueue(job) #:nodoc:
14
+ jid = SecureRandom.hex(12)
15
+ job.provider_job_id = jid
16
+ # Faktory::Client does not support symbols as keys
17
+ Faktory::Client.new.push \
18
+ "jid" => jid,
19
+ "jobtype" => JobWrapper,
20
+ "custom" => {
21
+ "wrapped" => job.class.to_s,
22
+ },
23
+ "priority" => job.priority,
24
+ "queue" => job.queue_name,
25
+ "args" => [ job.serialize ]
26
+ end
27
+
28
+ def enqueue_at(job, timestamp) #:nodoc:
29
+ jid = SecureRandom.hex(12)
30
+ job.provider_job_id = jid
31
+ # Faktory::Client does not support symbols as keys
32
+ Faktory::Client.new.push \
33
+ "jid" => jid,
34
+ "jobtype" => JobWrapper,
35
+ "custom" => {
36
+ "wrapped" => job.class.to_s
37
+ },
38
+ "priority" => job.priority,
39
+ "queue" => job.queue_name,
40
+ "args" => [ job.serialize ],
41
+ "at" => Time.at(timestamp).utc.to_datetime.rfc3339(9)
42
+ end
43
+
44
+ class JobWrapper #:nodoc:
45
+ include Faktory::Job
46
+
47
+ def perform(job_data)
48
+ Base.execute job_data
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
data/lib/faktory/rails.rb CHANGED
@@ -1,6 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
  module Faktory
3
3
  class Rails < ::Rails::Engine
4
+ # This hook happens after `Rails::Application` is inherited within
5
+ # config/application.rb and before config is touched, usually within the
6
+ # class block. Definitely before config/environments/*.rb and
7
+ # config/initializers/*.rb.
8
+ config.before_configuration do
9
+ if defined?(::ActiveJob)
10
+ require 'active_job/queue_adapters/faktory_adapter'
11
+ end
12
+ end
13
+
4
14
  config.after_initialize do
5
15
  # This hook happens after all initializers are run, just before returning
6
16
  # from config/environment.rb back to faktory/cli.rb.
@@ -31,7 +31,7 @@ module Faktory
31
31
  end
32
32
 
33
33
  def self.inline!(&block)
34
- # Only allow blockless inline via `blockless_inline_is_a_bad_idea_but_I_wanna_do_it_anyway!`
34
+ # Only allow inline testing inside of a block
35
35
  # https://github.com/mperham/sidekiq/issues/3495
36
36
  unless block_given?
37
37
  raise 'Must provide a block to Faktory::Testing.inline!'
@@ -40,10 +40,6 @@ module Faktory
40
40
  __set_test_mode(:inline, &block)
41
41
  end
42
42
 
43
- def self.blockless_inline_is_a_bad_idea_but_I_wanna_do_it_anyway!
44
- __set_test_mode(:inline)
45
- end
46
-
47
43
  def self.enabled?
48
44
  self.__test_mode != :disable
49
45
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Faktory
3
- VERSION = "0.7.0"
3
+ VERSION = "0.7.1"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faktory_worker_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-17 00:00:00.000000000 Z
11
+ date: 2018-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool
@@ -30,6 +30,20 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.2.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: activejob
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 5.1.5
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 5.1.5
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: minitest
35
49
  requirement: !ruby/object:Gem::Requirement
@@ -89,6 +103,7 @@ files:
89
103
  - Rakefile
90
104
  - bin/faktory-worker
91
105
  - faktory_worker_ruby.gemspec
106
+ - lib/active_job/queue_adapters/faktory_adapter.rb
92
107
  - lib/faktory.rb
93
108
  - lib/faktory/cli.rb
94
109
  - lib/faktory/client.rb
@@ -128,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
143
  version: '0'
129
144
  requirements: []
130
145
  rubyforge_project:
131
- rubygems_version: 2.6.13
146
+ rubygems_version: 2.5.1
132
147
  signing_key:
133
148
  specification_version: 4
134
149
  summary: Ruby worker for Faktory