que-scheduler 4.2.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: adf8110c30a79a8eeddb300dbfe79a1ac283080983dd41befc9a6769b66efcf6
4
- data.tar.gz: 2c800a7070b326993bda2eefea85e151ea74e40a9eb6e653fdfd10e47db59eaa
3
+ metadata.gz: 3031c76424c60291dc8d004538ab6dc5d57fdf8bb7c48faa6dae2cd2ddba90f7
4
+ data.tar.gz: 0c3d33ade4ebce0c2e24414347da1a5150d5ba680adafa240a15475a71ba646b
5
5
  SHA512:
6
- metadata.gz: a44603e489c6e9a7c7715ef3a53d7a5d4b4743d9e886be1b05daa37d4c3fa47666f80e896eab14d4e3f43ecda5b4cbc3e2532ed85bfe019bc330bb743cefe6e1
7
- data.tar.gz: 5534d3ca737011e1a97cd4b909377a31e58f287d782cb5c4f1e09e96a6369a12838896270b89609db07be532eb78195524129aa47626fe87024ad3975820e4f7
6
+ metadata.gz: c6c0bdefa899496a741b4c4b059cdc7663299a4a349b41560c44d77d2c788bc3ee4fb53f7c8fa51767d86332f1bd5475ea3bca3516ddd1a81de1bfea91e2e653
7
+ data.tar.gz: 447ff26a1c104803e27da593730b77aaf59300e13ead005c7dece366c1fbc0f252d65524dcba6b6a64be2a656681a97e1ae78adb45117b374b533525e2612b6a
data/README.md CHANGED
@@ -27,7 +27,7 @@ resque-scheduler files, but with additional features.
27
27
  ```ruby
28
28
  class CreateQueSchedulerSchema < ActiveRecord::Migration
29
29
  def change
30
- Que::Scheduler::Migrations.migrate!(version: 6)
30
+ Que::Scheduler::Migrations.migrate!(version: 7)
31
31
  end
32
32
  end
33
33
  ```
@@ -211,7 +211,7 @@ performed.
211
211
  ```ruby
212
212
  class CreateQueSchedulerSchema < ActiveRecord::Migration
213
213
  def change
214
- Que::Scheduler::Migrations.migrate!(version: 6)
214
+ Que::Scheduler::Migrations.migrate!(version: 7)
215
215
  end
216
216
  end
217
217
  ```
@@ -310,6 +310,15 @@ A full changelog can be found here: [CHANGELOG.md](https://github.com/hlascelles
310
310
 
311
311
  Your [postgres](https://www.postgresql.org/) database must be at least version 9.5.0.
312
312
 
313
+ The latest version of que-scheduler supports Ruby 2.7, though this is largely to allow
314
+ the gem to work with que 2.x. Recent que-scheduler versions (up to 4.2.2) work with Ruby 2.5.
315
+
316
+ Ruby 3.x support (and thus que 2.x support) is currently in beta.
317
+
318
+ Using que 0.x with Rails 6 needs a patch to support it.
319
+ See the patch and how to use it here: https://github.com/que-rb/que/issues/247#issuecomment-595258236
320
+ If that patch is included then que-scheduler will work. This setup is tested, but is not supported.
321
+
313
322
  ## Inspiration
314
323
 
315
324
  This gem was inspired by the makers of the excellent [Que](https://github.com/chanks/que) job scheduler gem.
@@ -324,3 +333,4 @@ This gem was inspired by the makers of the excellent [Que](https://github.com/ch
324
333
  * @krzyzak
325
334
  * @papodaca
326
335
  * @ajoneil
336
+ * @ippachi
@@ -86,7 +86,7 @@ module Que
86
86
  # queue name is only supported for a subrange of ActiveJob versions. Print this out as a
87
87
  # warning.
88
88
  if queue &&
89
- Que::Scheduler::ToEnqueue.active_job_loaded? &&
89
+ Que::Scheduler::ToEnqueue.active_job_defined? &&
90
90
  job_class < ::ActiveJob::Base &&
91
91
  Que::Scheduler::ToEnqueue.active_job_version < Gem::Version.create("6.0.3")
92
92
  puts <<~ERR
@@ -0,0 +1,13 @@
1
+ CREATE OR REPLACE FUNCTION que_scheduler_prevent_job_deletion() RETURNS TRIGGER AS
2
+ $BODY$
3
+ DECLARE
4
+ BEGIN
5
+ IF OLD.job_class = 'Que::Scheduler::SchedulerJob' THEN
6
+ IF NOT que_scheduler_check_job_exists() THEN
7
+ raise exception 'Deletion of que_scheduler job % prevented. Deleting the que_scheduler job is almost certainly a mistake.', OLD.job_id;
8
+ END IF;
9
+ END IF;
10
+ RETURN OLD;
11
+ END;
12
+ $BODY$
13
+ LANGUAGE 'plpgsql';
@@ -0,0 +1,13 @@
1
+ CREATE OR REPLACE FUNCTION que_scheduler_prevent_job_deletion() RETURNS TRIGGER AS
2
+ $BODY$
3
+ DECLARE
4
+ BEGIN
5
+ IF OLD.job_class = 'Que::Scheduler::SchedulerJob' THEN
6
+ IF NOT que_scheduler_check_job_exists() THEN
7
+ raise exception 'Deletion of que_scheduler job prevented. Deleting the que_scheduler job is almost certainly a mistake.';
8
+ END IF;
9
+ END IF;
10
+ RETURN OLD;
11
+ END;
12
+ $BODY$
13
+ LANGUAGE 'plpgsql';
@@ -36,10 +36,9 @@ module Que
36
36
  end
37
37
 
38
38
  def from_hash(config_hash)
39
- config_hash.to_h do |name, defined_job_hash|
40
- name_str = name.to_s
41
- [name_str, hash_item_to_defined_job(name_str, defined_job_hash)]
42
- end
39
+ config_hash
40
+ .map { |name, defined_job_hash| hash_item_to_defined_job(name.to_s, defined_job_hash) }
41
+ .index_by(&:name)
43
42
  end
44
43
 
45
44
  def hash_item_to_defined_job(name, defined_job_hash_in)
@@ -22,8 +22,8 @@ module Que
22
22
  type_from_job_class(job_class).present?
23
23
  end
24
24
 
25
- def active_job_loaded?
26
- !!active_job_version
25
+ def active_job_defined?
26
+ Object.const_defined?("ActiveJob")
27
27
  end
28
28
 
29
29
  def active_job_version
@@ -54,7 +54,7 @@ module Que
54
54
  hash = {
55
55
  ::Que::Job => QueJobType,
56
56
  }
57
- hash[::ActiveJob::Base] = ActiveJobType if ToEnqueue.active_job_loaded?
57
+ hash[::ActiveJob::Base] = ActiveJobType if ToEnqueue.active_job_defined?
58
58
  hash
59
59
  end
60
60
  end
@@ -1,5 +1,5 @@
1
1
  module Que
2
2
  module Scheduler
3
- VERSION = "4.2.0".freeze
3
+ VERSION = "4.3.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harry Lascelles
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-06 00:00:00.000000000 Z
11
+ date: 2022-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -70,20 +70,20 @@ dependencies:
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: '0.12'
73
+ version: '0.14'
74
74
  - - "<="
75
75
  - !ruby/object:Gem::Version
76
- version: 1.0.0.beta5
76
+ version: 2.0.0
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: '0.12'
83
+ version: '0.14'
84
84
  - - "<="
85
85
  - !ruby/object:Gem::Version
86
- version: 1.0.0.beta5
86
+ version: 2.0.0
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: activerecord
89
89
  requirement: !ruby/object:Gem::Requirement
@@ -371,6 +371,8 @@ files:
371
371
  - lib/que/scheduler/migrations/5/up.sql
372
372
  - lib/que/scheduler/migrations/6/down.sql
373
373
  - lib/que/scheduler/migrations/6/up.sql
374
+ - lib/que/scheduler/migrations/7/down.sql
375
+ - lib/que/scheduler/migrations/7/up.sql
374
376
  - lib/que/scheduler/schedule.rb
375
377
  - lib/que/scheduler/scheduler_job.rb
376
378
  - lib/que/scheduler/scheduler_job_args.rb
@@ -388,6 +390,7 @@ metadata:
388
390
  changelog_uri: https://github.com/hlascelles/que-scheduler/blob/master/CHANGELOG.md
389
391
  source_code_uri: https://github.com/hlascelles/que-scheduler/
390
392
  bug_tracker_uri: https://github.com/hlascelles/que-scheduler/issues
393
+ rubygems_mfa_required: 'true'
391
394
  post_install_message:
392
395
  rdoc_options: []
393
396
  require_paths:
@@ -396,14 +399,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
396
399
  requirements:
397
400
  - - ">="
398
401
  - !ruby/object:Gem::Version
399
- version: '0'
402
+ version: '2.7'
400
403
  required_rubygems_version: !ruby/object:Gem::Requirement
401
404
  requirements:
402
405
  - - ">="
403
406
  - !ruby/object:Gem::Version
404
407
  version: '0'
405
408
  requirements: []
406
- rubygems_version: 3.2.7
409
+ rubygems_version: 3.1.6
407
410
  signing_key:
408
411
  specification_version: 4
409
412
  summary: A cron scheduler for Que