que 1.0.0.beta → 1.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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