que 1.0.0.beta4 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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.beta4
4
+ version: 1.4.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: 2020-01-17 00:00:00.000000000 Z
11
+ date: 2022-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -32,15 +32,21 @@ executables:
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
- - ".github/workflows/ruby.yml"
35
+ - ".github/workflows/tests.yml"
36
36
  - ".gitignore"
37
- - CHANGELOG.1.0.beta.md
38
37
  - CHANGELOG.md
38
+ - Dockerfile
39
39
  - LICENSE.txt
40
40
  - README.md
41
41
  - Rakefile
42
+ - auto/dev
43
+ - auto/pre-push-hook
44
+ - auto/psql
45
+ - auto/test
46
+ - auto/test-postgres-14
42
47
  - bin/command_line_interface.rb
43
48
  - bin/que
49
+ - docker-compose.yml
44
50
  - docs/README.md
45
51
  - lib/que.rb
46
52
  - lib/que/active_job/extensions.rb
@@ -63,6 +69,8 @@ files:
63
69
  - lib/que/migrations/3/up.sql
64
70
  - lib/que/migrations/4/down.sql
65
71
  - lib/que/migrations/4/up.sql
72
+ - lib/que/migrations/5/down.sql
73
+ - lib/que/migrations/5/up.sql
66
74
  - lib/que/poller.rb
67
75
  - lib/que/rails/railtie.rb
68
76
  - lib/que/result_queue.rb
@@ -80,11 +88,13 @@ files:
80
88
  - lib/que/version.rb
81
89
  - lib/que/worker.rb
82
90
  - que.gemspec
91
+ - scripts/docker-entrypoint
92
+ - scripts/test
83
93
  homepage: https://github.com/que-rb/que
84
94
  licenses:
85
95
  - MIT
86
96
  metadata: {}
87
- post_install_message:
97
+ post_install_message:
88
98
  rdoc_options: []
89
99
  require_paths:
90
100
  - lib
@@ -95,12 +105,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
95
105
  version: '0'
96
106
  required_rubygems_version: !ruby/object:Gem::Requirement
97
107
  requirements:
98
- - - ">"
108
+ - - ">="
99
109
  - !ruby/object:Gem::Version
100
- version: 1.3.1
110
+ version: '0'
101
111
  requirements: []
102
- rubygems_version: 3.0.3
103
- signing_key:
112
+ rubygems_version: 3.3.7
113
+ signing_key:
104
114
  specification_version: 4
105
115
  summary: A PostgreSQL-based Job Queue
106
116
  test_files: []
@@ -1,137 +0,0 @@
1
- ### 1.0.0.beta3 (2018-05-18)
2
-
3
- * Added support for customizing log levels for `job_worked` events (#217).
4
-
5
- * Began logging all `job_errored` events at the `ERROR` log level.
6
-
7
- * Fixed the Railtie when running in test mode (#214).
8
-
9
- * Tweaked the meanings of worker-priorities and worker-count options in the CLI, to better support use cases with low worker counts (#216).
10
-
11
- ### 1.0.0.beta2 (2018-04-13)
12
-
13
- * Fixed an incompatibility that caused the new locker to hang when using Rails in development mode (#213).
14
-
15
- * Fixed a bug with setting the log level via the CLI when the configured logger was based on a callable (#210).
16
-
17
- * Renamed Que.middleware to Que.job_middleware.
18
-
19
- * Added Que.sql_middleware.
20
-
21
- * Officially added support for Ruby 2.5.
22
-
23
- * Internal cleanup and renamings.
24
-
25
- ### 1.0.0.beta (2017-10-25)
26
-
27
- * **A schema upgrade to version 4 will be required for this release.** See [the migration doc](https://github.com/que-rb/que/blob/master/docs/migrating.md) for information if you're upgrading from a previous release.
28
-
29
- * Please note that this migration requires a rewrite of the jobs table, which makes it O(n) with the size of the table. If you have a very large backlog of jobs you may want to schedule downtime for this migration.
30
-
31
- * Que's implementation has been changed from one in which worker threads hold their own PG connections and lock their own jobs to one in which a single thread (and PG connection) locks jobs through LISTEN/NOTIFY and batch polling, and passes jobs along to worker threads. This has many benefits, including:
32
-
33
- * Jobs queued for immediate processing can be actively distributed to workers with LISTEN/NOTIFY, which is more efficient than having workers repeatedly poll for new jobs.
34
-
35
- * When polling is necessary (to pick up jobs that are scheduled for the future or that need to be retried due to errors), jobs can be locked and fetched in batches, rather than one at a time.
36
-
37
- * Individual workers no longer need to monopolize their own (usually idle) connections while working jobs, so Ruby processes will require fewer Postgres connections.
38
-
39
- * PgBouncer or another external connection pool can be used for workers' connections (though not for the connection used to lock and listen for jobs).
40
-
41
- * Other features introduced in this version include:
42
-
43
- * Much better support for all versions of ActiveJob.
44
-
45
- * In particular, you may (optionally) include `Que::ActiveJob::JobExtensions` into `ApplicationJob` to get support for all of Que's job helper methods.
46
-
47
- * Custom middleware that wrap running jobs are now supported.
48
-
49
- * Support for categorizing jobs with tags.
50
-
51
- * Support for configuring a `maximum_retry_count` on individual job classes.
52
-
53
- * Job configuration options are now inheritable, so job class hierarchies are more useful.
54
-
55
- * There are now built-in models for ActiveRecord and Sequel to allow inspecting the queue easily.
56
-
57
- * Jobs that have finished working may optionally be retained in the database indefinitely.
58
-
59
- * To keep a job record, replace the `destroy` calls in your jobs with `finish`. `destroy` will still delete records entirely, for jobs that you don't want to keep.
60
-
61
- * If you don't resolve a job yourself one way or another, Que will still `destroy` the job for you by default.
62
-
63
- * Finished jobs have a timestamp set in the finished_at column.
64
-
65
- * Jobs that have errored too many times will now be marked as expired, and won't be retried again.
66
-
67
- * You can configure a maximum_retry_count in your job classes, to set the threshold at which a job will be marked expired. The default is 15.
68
-
69
- * To manually mark a job as expired (and keep it in the database but not try to run it again) you can call `expire` helper in your job.
70
-
71
- * You can now set job priority thresholds for individual workers, to ensure that there will always be space available for high-priority jobs.
72
-
73
- * `Que.job_states` returns a list of locked jobs and the hostname/pid of the Ruby processes that have locked them.
74
-
75
- * `Que.connection_proc=` has been added, to allow for the easy integration of custom connection pools.
76
-
77
- * In keeping with semantic versioning, the major version is being bumped since the new implementation requires some backwards-incompatible changes. These changes include:
78
-
79
- * Support for MRI Rubies before 2.2 has been dropped.
80
-
81
- * Support for Postgres versions before 9.5 has been dropped (JSONB and upsert support is required).
82
-
83
- * JRuby support has been dropped. It will be reintroduced whenever the jruby-pg gem is production-ready.
84
-
85
- * The `que:work` rake task has been removed. Use the `que` executable instead.
86
-
87
- * Therefore, configuring workers using QUE_* environment variables is no longer supported. Please pass the appropriate options to the `que` executable instead.
88
-
89
- * The `mode` setter has been removed.
90
-
91
- * To run jobs synchronously when they are enqueued (the old `:sync` behavior) you can set `Que.run_synchronously = true`.
92
-
93
- * To start up the worker pool (the old :async behavior) you should use the `que` executable to start up a worker process. There's no longer a supported API for running workers outside of the `que` executable.
94
-
95
- * The following methods are not meaningful under the new implementation and have been removed:
96
-
97
- * The `Que.wake_interval` getter and setter.
98
-
99
- * The `Que.worker_count` getter and setter.
100
-
101
- * `Que.wake!`
102
-
103
- * `Que.wake_all!`
104
-
105
- * Since Que needs a dedicated Postgres connection to manage job locks, running Que through a single PG connection is no longer supported.
106
-
107
- * It's not clear that anyone ever actually did this.
108
-
109
- * `Que.worker_states` has been removed, as the connection that locks a job is no longer the one that the job is using to run. Its functionality has been partially replaced with `Que.job_states`.
110
-
111
- * When using Rails, for simplicity, job attributes and keys in argument hashes are now converted to symbols when retrieved from the database, rather than being converted to instances of HashWithIndifferentAccess.
112
-
113
- * Arguments passed to jobs are now deep-frozen, to prevent unexpected behavior when the args are mutated and the job is reenqueued.
114
-
115
- * Since JSONB is now used to store arguments, the order of argument hashes is no longer maintained.
116
-
117
- * It wouldn't have been a good idea to rely on this anyway.
118
-
119
- * Calling Que.log() directly is no longer supported/recommended.
120
-
121
- * Features marked as deprecated in the final 0.x releases have been removed.
122
-
123
- * Finally, if you've built up your own tooling and customizations around Que, you may need to be aware of some DB schema changes made in the migration to schema version #4.
124
-
125
- * The `job_id` column has been renamed `id` and is now the primary key. This makes it easier to manage the queue using an ActiveRecord model.
126
-
127
- * Finished jobs are now kept in the DB, unless you explicitly call `destroy`. If you want to query the DB for only jobs that haven't finished yet, add a `WHERE finished_at IS NULL` condition to your query, or use the not_finished scope on one of the provided ORM models.
128
-
129
- * There is now an `expired_at` timestamp column, which is set when a job reaches its maximum number of retries and will not be attempted again.
130
-
131
- * Due to popular demand, the default queue name is now "default" rather than an empty string. The migration will move pending jobs under the "" queue to the "default" queue.
132
-
133
- * The `last_error` column has been split in two, to `last_error_message` and `last_error_backtrace`. These two columns are now limited to 500 and 10,000 characters, respectively. The migration will split old error data correctly, and truncate it if necessary.
134
-
135
- * Names for queues and job classes are now limited to 500 characters, which is still far longer than either of these values should reasonably be.
136
-
137
- * There is now a `data` JSONB column which is used to support various ways of organizing jobs (setting tags on them, etc).