que 1.0.0.beta → 1.0.0.beta2

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.
@@ -144,7 +144,7 @@ module Que
144
144
 
145
145
  return unless should_poll?
146
146
 
147
- expected_count = priorities.inject(0){|s,(p,c)| s + c}
147
+ expected_count = priorities.inject(0){|s,(_,c)| s + c}
148
148
 
149
149
  jobs =
150
150
  connection.execute_prepared(
@@ -2,12 +2,12 @@
2
2
 
3
3
  module Que
4
4
  module Rails
5
- class Railtie < Rails::Railtie
5
+ class Railtie < ::Rails::Railtie
6
6
  config.que = Que
7
7
 
8
- Que.run_asynchronously = true if Rails.env.test?
8
+ Que.run_asynchronously = true if ::Rails.env.test?
9
9
 
10
- Que.logger = proc { Rails.logger }
10
+ Que.logger = proc { ::Rails.logger }
11
11
  Que.connection = ::ActiveRecord if defined? ::ActiveRecord
12
12
  end
13
13
  end
@@ -28,8 +28,8 @@ module Que
28
28
 
29
29
  private
30
30
 
31
- def sync
32
- @mutex.synchronize { yield }
31
+ def sync(&block)
32
+ @mutex.synchronize(&block)
33
33
  end
34
34
  end
35
35
  end
@@ -4,7 +4,7 @@ module Que
4
4
  module Utils
5
5
  module Constantization
6
6
  def constantize(string)
7
- assert String, string
7
+ Que.assert String, string
8
8
 
9
9
  if string.respond_to?(:constantize)
10
10
  string.constantize
@@ -5,7 +5,8 @@
5
5
  module Que
6
6
  module Utils
7
7
  module Logging
8
- attr_accessor :logger, :log_formatter, :internal_logger
8
+ attr_accessor :logger, :internal_logger
9
+ attr_writer :log_formatter
9
10
 
10
11
  def log(event:, level: :info, **extra)
11
12
  data = _default_log_data
@@ -5,27 +5,40 @@
5
5
  module Que
6
6
  module Utils
7
7
  module Middleware
8
- def run_middleware(job, &block)
9
- invoke_middleware(
10
- middleware: middleware.dup,
11
- job: job,
12
- block: block,
13
- )
14
- end
8
+ TYPES = [
9
+ :job,
10
+ :sql,
11
+ ].freeze
12
+
13
+ TYPES.each do |type|
14
+ module_eval <<-CODE
15
+ def #{type}_middleware
16
+ @#{type}_middleware ||= []
17
+ end
15
18
 
16
- def middleware
17
- @middleware ||= []
19
+ def run_#{type}_middleware(*args)
20
+ m = #{type}_middleware
21
+
22
+ if m.empty?
23
+ yield
24
+ else
25
+ invoke_middleware(middleware: m.dup, args: args) { yield }
26
+ end
27
+ end
28
+ CODE
18
29
  end
19
30
 
20
31
  private
21
32
 
22
- def invoke_middleware(middleware:, job:, block:)
33
+ def invoke_middleware(middleware:, args:, &block)
23
34
  if m = middleware.shift
24
- m.call(job) do
25
- invoke_middleware(middleware: middleware, job: job, block: block)
35
+ r = nil
36
+ m.call(*args) do
37
+ r = invoke_middleware(middleware: middleware, args: args, &block)
26
38
  end
39
+ r
27
40
  else
28
- block.call
41
+ yield
29
42
  end
30
43
  end
31
44
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Que
4
- VERSION = '1.0.0.beta'
4
+ VERSION = '1.0.0.beta2'
5
5
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Workers wrap threads which continuously pull job pks from JobCache objects,
3
+ # Workers wrap threads which continuously pull job pks from JobBuffer objects,
4
4
  # fetch and work those jobs, and export relevant data to ResultQueues.
5
5
 
6
6
  module Que
@@ -15,20 +15,20 @@ module Que
15
15
  }
16
16
 
17
17
  def initialize(
18
- job_cache:,
18
+ job_buffer:,
19
19
  result_queue:,
20
20
  priority: nil,
21
21
  start_callback: nil
22
22
  )
23
23
 
24
24
  @priority = Que.assert([NilClass, Integer], priority)
25
- @job_cache = Que.assert(JobCache, job_cache)
25
+ @job_buffer = Que.assert(JobBuffer, job_buffer)
26
26
  @result_queue = Que.assert(ResultQueue, result_queue)
27
27
 
28
28
  Que.internal_log(:worker_instantiate, self) do
29
29
  {
30
30
  priority: priority,
31
- job_cache: job_cache.object_id,
31
+ job_buffer: job_buffer.object_id,
32
32
  result_queue: result_queue.object_id,
33
33
  }
34
34
  end
@@ -80,7 +80,7 @@ module Que
80
80
  end
81
81
 
82
82
  def fetch_next_metajob
83
- @job_cache.shift(*priority)
83
+ @job_buffer.shift(*priority)
84
84
  end
85
85
 
86
86
  def work_job(metajob)
@@ -89,7 +89,7 @@ module Que
89
89
  klass = Que.constantize(job.fetch(:job_class))
90
90
  instance = klass.new(job)
91
91
 
92
- Que.run_middleware(instance) { instance.tap(&:_run) }
92
+ Que.run_job_middleware(instance) { instance.tap(&:_run) }
93
93
 
94
94
  log_message = {
95
95
  level: :debug,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta
4
+ version: 1.0.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Hanks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-25 00:00:00.000000000 Z
11
+ date: 2018-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -33,6 +33,7 @@ extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
35
  - ".gitignore"
36
+ - CHANGELOG.1.0.beta.md
36
37
  - CHANGELOG.md
37
38
  - LICENSE.txt
38
39
  - README.md
@@ -62,7 +63,7 @@ files:
62
63
  - lib/que/connection.rb
63
64
  - lib/que/connection_pool.rb
64
65
  - lib/que/job.rb
65
- - lib/que/job_cache.rb
66
+ - lib/que/job_buffer.rb
66
67
  - lib/que/job_methods.rb
67
68
  - lib/que/listener.rb
68
69
  - lib/que/locker.rb
@@ -113,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
114
  version: 1.3.1
114
115
  requirements: []
115
116
  rubyforge_project:
116
- rubygems_version: 2.6.14
117
+ rubygems_version: 2.7.3
117
118
  signing_key:
118
119
  specification_version: 4
119
120
  summary: A PostgreSQL-based Job Queue