que 0.11.3 → 2.2.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.
Files changed (114) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/tests.yml +51 -0
  3. data/.gitignore +2 -0
  4. data/.ruby-version +1 -0
  5. data/CHANGELOG.md +502 -97
  6. data/Dockerfile +20 -0
  7. data/LICENSE.txt +1 -1
  8. data/README.md +205 -59
  9. data/auto/dev +21 -0
  10. data/auto/pre-push-hook +30 -0
  11. data/auto/psql +9 -0
  12. data/auto/test +5 -0
  13. data/auto/test-postgres-14 +17 -0
  14. data/bin/que +8 -81
  15. data/docker-compose.yml +47 -0
  16. data/docs/README.md +881 -0
  17. data/lib/que/active_job/extensions.rb +114 -0
  18. data/lib/que/active_record/connection.rb +51 -0
  19. data/lib/que/active_record/model.rb +48 -0
  20. data/lib/que/command_line_interface.rb +259 -0
  21. data/lib/que/connection.rb +198 -0
  22. data/lib/que/connection_pool.rb +78 -0
  23. data/lib/que/job.rb +210 -103
  24. data/lib/que/job_buffer.rb +255 -0
  25. data/lib/que/job_methods.rb +176 -0
  26. data/lib/que/listener.rb +176 -0
  27. data/lib/que/locker.rb +507 -0
  28. data/lib/que/metajob.rb +47 -0
  29. data/lib/que/migrations/4/down.sql +48 -0
  30. data/lib/que/migrations/4/up.sql +267 -0
  31. data/lib/que/migrations/5/down.sql +73 -0
  32. data/lib/que/migrations/5/up.sql +76 -0
  33. data/lib/que/migrations/6/down.sql +8 -0
  34. data/lib/que/migrations/6/up.sql +8 -0
  35. data/lib/que/migrations/7/down.sql +5 -0
  36. data/lib/que/migrations/7/up.sql +13 -0
  37. data/lib/que/migrations.rb +37 -18
  38. data/lib/que/poller.rb +274 -0
  39. data/lib/que/rails/railtie.rb +12 -0
  40. data/lib/que/result_queue.rb +35 -0
  41. data/lib/que/sequel/model.rb +52 -0
  42. data/lib/que/utils/assertions.rb +62 -0
  43. data/lib/que/utils/constantization.rb +19 -0
  44. data/lib/que/utils/error_notification.rb +68 -0
  45. data/lib/que/utils/freeze.rb +20 -0
  46. data/lib/que/utils/introspection.rb +50 -0
  47. data/lib/que/utils/json_serialization.rb +21 -0
  48. data/lib/que/utils/logging.rb +79 -0
  49. data/lib/que/utils/middleware.rb +46 -0
  50. data/lib/que/utils/queue_management.rb +18 -0
  51. data/lib/que/utils/ruby2_keywords.rb +19 -0
  52. data/lib/que/utils/transactions.rb +34 -0
  53. data/lib/que/version.rb +5 -1
  54. data/lib/que/worker.rb +145 -149
  55. data/lib/que.rb +103 -159
  56. data/que.gemspec +17 -4
  57. data/scripts/docker-entrypoint +14 -0
  58. data/scripts/test +6 -0
  59. metadata +59 -95
  60. data/.rspec +0 -2
  61. data/.travis.yml +0 -17
  62. data/Gemfile +0 -24
  63. data/docs/advanced_setup.md +0 -106
  64. data/docs/customizing_que.md +0 -200
  65. data/docs/error_handling.md +0 -47
  66. data/docs/inspecting_the_queue.md +0 -114
  67. data/docs/logging.md +0 -50
  68. data/docs/managing_workers.md +0 -80
  69. data/docs/migrating.md +0 -30
  70. data/docs/multiple_queues.md +0 -27
  71. data/docs/shutting_down_safely.md +0 -7
  72. data/docs/using_plain_connections.md +0 -41
  73. data/docs/using_sequel.md +0 -31
  74. data/docs/writing_reliable_jobs.md +0 -117
  75. data/lib/generators/que/install_generator.rb +0 -24
  76. data/lib/generators/que/templates/add_que.rb +0 -13
  77. data/lib/que/adapters/active_record.rb +0 -54
  78. data/lib/que/adapters/base.rb +0 -127
  79. data/lib/que/adapters/connection_pool.rb +0 -16
  80. data/lib/que/adapters/pg.rb +0 -21
  81. data/lib/que/adapters/pond.rb +0 -16
  82. data/lib/que/adapters/sequel.rb +0 -20
  83. data/lib/que/railtie.rb +0 -16
  84. data/lib/que/rake_tasks.rb +0 -59
  85. data/lib/que/sql.rb +0 -152
  86. data/spec/adapters/active_record_spec.rb +0 -152
  87. data/spec/adapters/connection_pool_spec.rb +0 -22
  88. data/spec/adapters/pg_spec.rb +0 -41
  89. data/spec/adapters/pond_spec.rb +0 -22
  90. data/spec/adapters/sequel_spec.rb +0 -57
  91. data/spec/gemfiles/Gemfile1 +0 -18
  92. data/spec/gemfiles/Gemfile2 +0 -18
  93. data/spec/spec_helper.rb +0 -118
  94. data/spec/support/helpers.rb +0 -19
  95. data/spec/support/jobs.rb +0 -35
  96. data/spec/support/shared_examples/adapter.rb +0 -37
  97. data/spec/support/shared_examples/multi_threaded_adapter.rb +0 -46
  98. data/spec/travis.rb +0 -23
  99. data/spec/unit/connection_spec.rb +0 -14
  100. data/spec/unit/customization_spec.rb +0 -251
  101. data/spec/unit/enqueue_spec.rb +0 -245
  102. data/spec/unit/helper_spec.rb +0 -12
  103. data/spec/unit/logging_spec.rb +0 -101
  104. data/spec/unit/migrations_spec.rb +0 -84
  105. data/spec/unit/pool_spec.rb +0 -365
  106. data/spec/unit/run_spec.rb +0 -14
  107. data/spec/unit/states_spec.rb +0 -50
  108. data/spec/unit/stats_spec.rb +0 -46
  109. data/spec/unit/transaction_spec.rb +0 -36
  110. data/spec/unit/work_spec.rb +0 -407
  111. data/spec/unit/worker_spec.rb +0 -167
  112. data/tasks/benchmark.rb +0 -3
  113. data/tasks/rspec.rb +0 -14
  114. data/tasks/safe_shutdown.rb +0 -67
data/lib/que.rb CHANGED
@@ -1,180 +1,124 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'socket' # For hostname
3
+ require 'forwardable'
4
+ require 'socket' # For Socket.gethostname
4
5
 
5
6
  module Que
6
- autoload :Adapters, 'que/adapters/base'
7
- autoload :Job, 'que/job'
8
- autoload :Migrations, 'que/migrations'
9
- autoload :SQL, 'que/sql'
10
- autoload :Version, 'que/version'
11
- autoload :Worker, 'que/worker'
12
-
13
- begin
14
- require 'multi_json'
15
- JSON_MODULE = MultiJson
16
- rescue LoadError
17
- require 'json'
18
- JSON_MODULE = JSON
19
- end
7
+ CURRENT_HOSTNAME = Socket.gethostname.freeze
8
+ DEFAULT_QUEUE = 'default'.freeze
9
+ TIME_REGEX = /\A\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}Z\z/
10
+ CONFIG_MUTEX = Mutex.new
11
+ MAXIMUM_PRIORITY = 32767
12
+
13
+ class Error < StandardError; end
14
+
15
+ # Store SQL strings frozen, with squashed whitespace so logs read better.
16
+ SQL = {}
17
+ def SQL.[]=(k,v); super(k, v.strip.gsub(/\s+/, ' ').freeze); end
18
+
19
+ # Load up modules that allow registration before modules that use it.
20
+ require_relative 'que/listener'
21
+
22
+ # Load utilities before main logic that will use them.
23
+ require_relative 'que/utils/assertions'
24
+ require_relative 'que/utils/constantization'
25
+ require_relative 'que/utils/error_notification'
26
+ require_relative 'que/utils/freeze'
27
+ require_relative 'que/utils/introspection'
28
+ require_relative 'que/utils/json_serialization'
29
+ require_relative 'que/utils/logging'
30
+ require_relative 'que/utils/middleware'
31
+ require_relative 'que/utils/queue_management'
32
+ require_relative 'que/utils/ruby2_keywords'
33
+ require_relative 'que/utils/transactions'
34
+
35
+ require_relative 'que/version'
36
+
37
+ require_relative 'que/connection'
38
+ require_relative 'que/connection_pool'
39
+ require_relative 'que/job_methods'
40
+ require_relative 'que/job'
41
+ require_relative 'que/job_buffer'
42
+ require_relative 'que/locker'
43
+ require_relative 'que/metajob'
44
+ require_relative 'que/migrations'
45
+ require_relative 'que/poller'
46
+ require_relative 'que/result_queue'
47
+ require_relative 'que/worker'
20
48
 
21
- HASH_DEFAULT_PROC = proc { |hash, key| hash[key.to_s] if Symbol === key }
22
-
23
- INDIFFERENTIATOR = proc do |object|
24
- case object
25
- when Array
26
- object.each(&INDIFFERENTIATOR)
27
- when Hash
28
- object.default_proc = HASH_DEFAULT_PROC
29
- object.each { |key, value| object[key] = INDIFFERENTIATOR.call(value) }
30
- object
31
- else
32
- object
33
- end
49
+ class << self
50
+ attr_writer :default_queue
34
51
  end
35
52
 
36
- SYMBOLIZER = proc do |object|
37
- case object
38
- when Hash
39
- object.keys.each do |key|
40
- object[key.to_sym] = SYMBOLIZER.call(object.delete(key))
41
- end
42
- object
43
- when Array
44
- object.map! { |e| SYMBOLIZER.call(e) }
45
- else
46
- object
47
- end
48
- end
53
+ self.default_queue = nil
49
54
 
50
55
  class << self
51
- attr_accessor :error_handler
52
- attr_writer :logger, :adapter, :log_formatter, :disable_prepared_statements, :json_converter
53
-
54
- def connection=(connection)
55
- self.adapter =
56
- if connection.to_s == 'ActiveRecord'
57
- Adapters::ActiveRecord.new
56
+ include Utils::Assertions
57
+ include Utils::Constantization
58
+ include Utils::ErrorNotification
59
+ include Utils::Freeze
60
+ include Utils::Introspection
61
+ include Utils::JSONSerialization
62
+ include Utils::Logging
63
+ include Utils::Middleware
64
+ include Utils::QueueManagement
65
+ include Utils::Ruby2Keywords
66
+ include Utils::Transactions
67
+
68
+ extend Forwardable
69
+
70
+ # Copy some commonly-used methods here, for convenience.
71
+ def_delegators :pool, :execute, :checkout, :in_transaction?
72
+ def_delegators Job, :enqueue, :bulk_enqueue, :run_synchronously, :run_synchronously=
73
+ def_delegators Migrations, :db_version, :migrate!
74
+
75
+ # Global configuration logic.
76
+ attr_accessor :use_prepared_statements
77
+
78
+ def default_queue
79
+ @default_queue || DEFAULT_QUEUE
80
+ end
81
+
82
+ # Support simple integration with many common connection pools.
83
+ def connection=(conn)
84
+ self.connection_proc =
85
+ if conn.to_s == 'ActiveRecord'
86
+ # Load and setup AR compatibility.
87
+ require_relative 'que/active_record/connection'
88
+ m = Que::ActiveRecord::Connection::JobMiddleware
89
+ job_middleware << m unless job_middleware.include?(m)
90
+ Que::ActiveRecord::Connection.method(:checkout)
58
91
  else
59
- case connection.class.to_s
60
- when 'Sequel::Postgres::Database' then Adapters::Sequel.new(connection)
61
- when 'ConnectionPool' then Adapters::ConnectionPool.new(connection)
62
- when 'PG::Connection' then Adapters::PG.new(connection)
63
- when 'Pond' then Adapters::Pond.new(connection)
64
- when 'NilClass' then connection
65
- else raise "Que connection not recognized: #{connection.inspect}"
92
+ case conn.class.to_s
93
+ when 'Sequel::Postgres::Database' then conn.method(:synchronize)
94
+ when 'Pond' then conn.method(:checkout)
95
+ when 'ConnectionPool' then conn.method(:with)
96
+ when 'NilClass' then conn
97
+ else raise Error, "Unsupported connection: #{conn.class}"
66
98
  end
67
99
  end
68
100
  end
69
101
 
70
- def adapter
71
- @adapter || raise("Que connection not established!")
72
- end
73
-
74
- def execute(*args)
75
- adapter.execute(*args)
76
- end
77
-
78
- def clear!
79
- execute "DELETE FROM que_jobs"
80
- end
81
-
82
- def job_stats
83
- execute :job_stats
84
- end
85
-
86
- def worker_states
87
- execute :worker_states
88
- end
89
-
90
- # Give us a cleaner interface when specifying a job_class as a string.
91
- def enqueue(*args)
92
- Job.enqueue(*args)
93
- end
94
-
95
- def db_version
96
- Migrations.db_version
97
- end
98
-
99
- def migrate!(version = {:version => Migrations::CURRENT_VERSION})
100
- Migrations.migrate!(version)
101
- end
102
-
103
- # Have to support create! and drop! in old migrations. They just created
104
- # and dropped the bare table.
105
- def create!
106
- migrate! :version => 1
107
- end
108
-
109
- def drop!
110
- migrate! :version => 0
111
- end
112
-
113
- def log(data)
114
- level = data.delete(:level) || :info
115
- data = {:lib => 'que', :hostname => Socket.gethostname, :pid => Process.pid, :thread => Thread.current.object_id}.merge(data)
116
-
117
- if (l = logger) && output = log_formatter.call(data)
118
- l.send level, output
119
- end
102
+ # Integrate Que with any connection pool by passing it a reentrant block
103
+ # that locks and yields a Postgres connection.
104
+ def connection_proc=(connection_proc)
105
+ @pool = connection_proc && ConnectionPool.new(&connection_proc)
120
106
  end
121
107
 
122
- def logger
123
- @logger.respond_to?(:call) ? @logger.call : @logger
108
+ # How to actually access Que's established connection pool.
109
+ def pool
110
+ @pool || raise(Error, "Que connection not established!")
124
111
  end
125
112
 
126
- def log_formatter
127
- @log_formatter ||= JSON_MODULE.method(:dump)
128
- end
129
-
130
- def disable_prepared_statements
131
- @disable_prepared_statements || false
132
- end
133
-
134
- def constantize(camel_cased_word)
135
- if camel_cased_word.respond_to?(:constantize)
136
- # Use ActiveSupport's version if it exists.
137
- camel_cased_word.constantize
138
- else
139
- camel_cased_word.split('::').inject(Object, &:const_get)
140
- end
141
- end
142
-
143
- # A helper method to manage transactions, used mainly by the migration
144
- # system. It's available for general use, but if you're using an ORM that
145
- # provides its own transaction helper, be sure to use that instead, or the
146
- # two may interfere with one another.
147
- def transaction
148
- adapter.checkout do
149
- if adapter.in_transaction?
150
- yield
151
- else
152
- begin
153
- execute "BEGIN"
154
- yield
155
- rescue => error
156
- raise
157
- ensure
158
- # Handle a raised error or a killed thread.
159
- if error || Thread.current.status == 'aborting'
160
- execute "ROLLBACK"
161
- else
162
- execute "COMMIT"
163
- end
164
- end
165
- end
166
- end
167
- end
168
-
169
- def json_converter
170
- @json_converter ||= INDIFFERENTIATOR
171
- end
172
-
173
- # Copy some of the Worker class' config methods here for convenience.
174
- [:mode, :mode=, :worker_count, :worker_count=, :wake_interval, :wake_interval=, :queue_name, :queue_name=, :wake!, :wake_all!].each do |meth|
175
- define_method(meth) { |*args| Worker.send(meth, *args) }
176
- end
113
+ # Set the current pool. Helpful for specs, but probably shouldn't be used
114
+ # generally.
115
+ attr_writer :pool
177
116
  end
117
+
118
+ # Set config defaults.
119
+ self.use_prepared_statements = true
178
120
  end
179
121
 
180
- require 'que/railtie' if defined? Rails::Railtie
122
+ # Load Rails features as appropriate.
123
+ require_relative 'que/rails/railtie' if defined?(::Rails::Railtie)
124
+ require_relative 'que/active_job/extensions' if defined?(::ActiveJob)
data/que.gemspec CHANGED
@@ -5,18 +5,31 @@ require 'que/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'que'
8
- spec.version = Que::Version
8
+ spec.version = Que::VERSION
9
9
  spec.authors = ["Chris Hanks"]
10
10
  spec.email = ['christopher.m.hanks@gmail.com']
11
11
  spec.description = %q{A job queue that uses PostgreSQL's advisory locks for speed and reliability.}
12
12
  spec.summary = %q{A PostgreSQL-based Job Queue}
13
- spec.homepage = 'https://github.com/chanks/que'
13
+ spec.homepage = 'https://github.com/que-rb/que'
14
14
  spec.license = 'MIT'
15
15
 
16
- spec.files = `git ls-files`.split($/)
16
+ spec.required_ruby_version = '>= 2.7.0'
17
+
18
+ files_to_exclude = [
19
+ /\A\.circleci/,
20
+ /\AGemfile/,
21
+ /\Aspec/,
22
+ /\Atasks/,
23
+ /spec\.rb\z/,
24
+ ]
25
+
26
+ spec.files = `git ls-files`.split($/).reject do |file|
27
+ files_to_exclude.any? { |r| r === file }
28
+ end
29
+
17
30
  spec.executables = ['que']
18
31
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
32
  spec.require_paths = ['lib']
20
33
 
21
- spec.add_development_dependency 'bundler', '~> 1.3'
34
+ spec.add_development_dependency 'bundler'
22
35
  end
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+
3
+ set -Eeuo pipefail
4
+
5
+ # For using your own dotfiles within the Docker container
6
+ if [ -f /.docker-rc.d/.docker-bashrc ]; then
7
+ echo "source /.docker-rc.d/.docker-bashrc" >> ~/.bashrc
8
+ fi
9
+
10
+ gem list -i -e bundler -v "$RUBY_BUNDLER_VERSION" >/dev/null || gem install bundler -v "$RUBY_BUNDLER_VERSION"
11
+
12
+ bundle check --dry-run || bundle install
13
+
14
+ exec "${@-bash}"
data/scripts/test ADDED
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ set -Eeuo pipefail
4
+
5
+ bundle exec rake spec "$@"
6
+ USE_RAILS=true bundle exec rake spec "$@"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.3
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Hanks
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-26 00:00:00.000000000 Z
11
+ date: 2022-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '0'
20
20
  type: :development
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: '1.3'
26
+ version: '0'
27
27
  description: A job queue that uses PostgreSQL's advisory locks for speed and reliability.
28
28
  email:
29
29
  - christopher.m.hanks@gmail.com
@@ -32,37 +32,35 @@ executables:
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - ".github/workflows/tests.yml"
35
36
  - ".gitignore"
36
- - ".rspec"
37
- - ".travis.yml"
37
+ - ".ruby-version"
38
38
  - CHANGELOG.md
39
- - Gemfile
39
+ - Dockerfile
40
40
  - LICENSE.txt
41
41
  - README.md
42
42
  - Rakefile
43
+ - auto/dev
44
+ - auto/pre-push-hook
45
+ - auto/psql
46
+ - auto/test
47
+ - auto/test-postgres-14
43
48
  - bin/que
44
- - docs/advanced_setup.md
45
- - docs/customizing_que.md
46
- - docs/error_handling.md
47
- - docs/inspecting_the_queue.md
48
- - docs/logging.md
49
- - docs/managing_workers.md
50
- - docs/migrating.md
51
- - docs/multiple_queues.md
52
- - docs/shutting_down_safely.md
53
- - docs/using_plain_connections.md
54
- - docs/using_sequel.md
55
- - docs/writing_reliable_jobs.md
56
- - lib/generators/que/install_generator.rb
57
- - lib/generators/que/templates/add_que.rb
49
+ - docker-compose.yml
50
+ - docs/README.md
58
51
  - lib/que.rb
59
- - lib/que/adapters/active_record.rb
60
- - lib/que/adapters/base.rb
61
- - lib/que/adapters/connection_pool.rb
62
- - lib/que/adapters/pg.rb
63
- - lib/que/adapters/pond.rb
64
- - lib/que/adapters/sequel.rb
52
+ - lib/que/active_job/extensions.rb
53
+ - lib/que/active_record/connection.rb
54
+ - lib/que/active_record/model.rb
55
+ - lib/que/command_line_interface.rb
56
+ - lib/que/connection.rb
57
+ - lib/que/connection_pool.rb
65
58
  - lib/que/job.rb
59
+ - lib/que/job_buffer.rb
60
+ - lib/que/job_methods.rb
61
+ - lib/que/listener.rb
62
+ - lib/que/locker.rb
63
+ - lib/que/metajob.rb
66
64
  - lib/que/migrations.rb
67
65
  - lib/que/migrations/1/down.sql
68
66
  - lib/que/migrations/1/up.sql
@@ -70,46 +68,39 @@ files:
70
68
  - lib/que/migrations/2/up.sql
71
69
  - lib/que/migrations/3/down.sql
72
70
  - lib/que/migrations/3/up.sql
73
- - lib/que/railtie.rb
74
- - lib/que/rake_tasks.rb
75
- - lib/que/sql.rb
71
+ - lib/que/migrations/4/down.sql
72
+ - lib/que/migrations/4/up.sql
73
+ - lib/que/migrations/5/down.sql
74
+ - lib/que/migrations/5/up.sql
75
+ - lib/que/migrations/6/down.sql
76
+ - lib/que/migrations/6/up.sql
77
+ - lib/que/migrations/7/down.sql
78
+ - lib/que/migrations/7/up.sql
79
+ - lib/que/poller.rb
80
+ - lib/que/rails/railtie.rb
81
+ - lib/que/result_queue.rb
82
+ - lib/que/sequel/model.rb
83
+ - lib/que/utils/assertions.rb
84
+ - lib/que/utils/constantization.rb
85
+ - lib/que/utils/error_notification.rb
86
+ - lib/que/utils/freeze.rb
87
+ - lib/que/utils/introspection.rb
88
+ - lib/que/utils/json_serialization.rb
89
+ - lib/que/utils/logging.rb
90
+ - lib/que/utils/middleware.rb
91
+ - lib/que/utils/queue_management.rb
92
+ - lib/que/utils/ruby2_keywords.rb
93
+ - lib/que/utils/transactions.rb
76
94
  - lib/que/version.rb
77
95
  - lib/que/worker.rb
78
96
  - que.gemspec
79
- - spec/adapters/active_record_spec.rb
80
- - spec/adapters/connection_pool_spec.rb
81
- - spec/adapters/pg_spec.rb
82
- - spec/adapters/pond_spec.rb
83
- - spec/adapters/sequel_spec.rb
84
- - spec/gemfiles/Gemfile1
85
- - spec/gemfiles/Gemfile2
86
- - spec/spec_helper.rb
87
- - spec/support/helpers.rb
88
- - spec/support/jobs.rb
89
- - spec/support/shared_examples/adapter.rb
90
- - spec/support/shared_examples/multi_threaded_adapter.rb
91
- - spec/travis.rb
92
- - spec/unit/connection_spec.rb
93
- - spec/unit/customization_spec.rb
94
- - spec/unit/enqueue_spec.rb
95
- - spec/unit/helper_spec.rb
96
- - spec/unit/logging_spec.rb
97
- - spec/unit/migrations_spec.rb
98
- - spec/unit/pool_spec.rb
99
- - spec/unit/run_spec.rb
100
- - spec/unit/states_spec.rb
101
- - spec/unit/stats_spec.rb
102
- - spec/unit/transaction_spec.rb
103
- - spec/unit/work_spec.rb
104
- - spec/unit/worker_spec.rb
105
- - tasks/benchmark.rb
106
- - tasks/rspec.rb
107
- - tasks/safe_shutdown.rb
108
- homepage: https://github.com/chanks/que
97
+ - scripts/docker-entrypoint
98
+ - scripts/test
99
+ homepage: https://github.com/que-rb/que
109
100
  licenses:
110
101
  - MIT
111
102
  metadata: {}
112
- post_install_message:
103
+ post_install_message:
113
104
  rdoc_options: []
114
105
  require_paths:
115
106
  - lib
@@ -117,42 +108,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
108
  requirements:
118
109
  - - ">="
119
110
  - !ruby/object:Gem::Version
120
- version: '0'
111
+ version: 2.7.0
121
112
  required_rubygems_version: !ruby/object:Gem::Requirement
122
113
  requirements:
123
114
  - - ">="
124
115
  - !ruby/object:Gem::Version
125
116
  version: '0'
126
117
  requirements: []
127
- rubyforge_project:
128
- rubygems_version: 2.5.1
129
- signing_key:
118
+ rubygems_version: 3.3.7
119
+ signing_key:
130
120
  specification_version: 4
131
121
  summary: A PostgreSQL-based Job Queue
132
- test_files:
133
- - spec/adapters/active_record_spec.rb
134
- - spec/adapters/connection_pool_spec.rb
135
- - spec/adapters/pg_spec.rb
136
- - spec/adapters/pond_spec.rb
137
- - spec/adapters/sequel_spec.rb
138
- - spec/gemfiles/Gemfile1
139
- - spec/gemfiles/Gemfile2
140
- - spec/spec_helper.rb
141
- - spec/support/helpers.rb
142
- - spec/support/jobs.rb
143
- - spec/support/shared_examples/adapter.rb
144
- - spec/support/shared_examples/multi_threaded_adapter.rb
145
- - spec/travis.rb
146
- - spec/unit/connection_spec.rb
147
- - spec/unit/customization_spec.rb
148
- - spec/unit/enqueue_spec.rb
149
- - spec/unit/helper_spec.rb
150
- - spec/unit/logging_spec.rb
151
- - spec/unit/migrations_spec.rb
152
- - spec/unit/pool_spec.rb
153
- - spec/unit/run_spec.rb
154
- - spec/unit/states_spec.rb
155
- - spec/unit/stats_spec.rb
156
- - spec/unit/transaction_spec.rb
157
- - spec/unit/work_spec.rb
158
- - spec/unit/worker_spec.rb
122
+ test_files: []
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --order random
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - "1.9.3"
4
- - "2.0"
5
- - "2.1"
6
- - "2.2"
7
- - "2.3"
8
- - "rbx-2"
9
- - "jruby-1.7.5"
10
- before_script:
11
- - psql -c 'create database "que-test"' -U postgres
12
- - bundle exec ruby -r sequel -r ./lib/que -e 'Que.connection=Sequel.connect("postgres://localhost/que-test"); Que.migrate!'
13
-
14
- script: "./spec/travis.rb"
15
-
16
- addons:
17
- postgresql: 9.3
data/Gemfile DELETED
@@ -1,24 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- group :development, :test do
4
- gem 'rake'
5
-
6
- gem 'activerecord', :require => nil
7
- gem 'sequel', :require => nil
8
- gem 'connection_pool', :require => nil
9
- gem 'pond', :require => nil
10
- gem 'pg', :require => nil, :platform => :ruby
11
- gem 'pg_jruby', :require => nil, :platform => :jruby
12
- end
13
-
14
- group :test do
15
- gem 'rspec', '~> 2.14.1'
16
- gem 'pry'
17
- end
18
-
19
- platforms :rbx do
20
- gem 'rubysl', '~> 2.0'
21
- gem 'json', '~> 1.8'
22
- end
23
-
24
- gemspec