crono_trigger 0.8.2 → 0.8.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94ee913ba2838c73020154bb6f85f49ff93a4d2d3ba39bed1d0be26255b7d06c
4
- data.tar.gz: 4222b9af986177a6190c954b8dc9c639a06f5775568422929e3e33699443e5c5
3
+ metadata.gz: ec668a8a6dfa0a60daf0d2e7b80b9054b2776584343594622e37163cb4c5474b
4
+ data.tar.gz: 3fc0dc5a53a9e8286ce96002b27b205d3d56594abb20b28e8a81f0bf339833b3
5
5
  SHA512:
6
- metadata.gz: 2f0afb27ab496e72e5754c7adb777526aefee00b7c9e76e31775395c1d40dadf5889dc072308193becc43fa2b2e2e87a92f5ef5a93942319869065aa590aeb4b
7
- data.tar.gz: 21a0f3570da6a32302bd84ed72630afdcdf7c70f0b6e691fcb0bd21d6e3cdde87cf91129a74a09a2fd692f0a33830d7e904df6fc253ba9a63eb4709c225f2e3c
6
+ metadata.gz: d9267dcfa7df4b786b26dc8bf16e37d420972dba451ade978fcc099c0682e56b0eaddc11417081738c7d133bd4e22b572db24361b697b1d36d4cec830ca668dc
7
+ data.tar.gz: b14ab3d6ba391ef873e680ab5adb00c763639e5b38ee79b7dc4aaa7edbc40be0d60a3e5653b8097d108a48dd089c671ca86306f84c1735e254dfb1d306c6a8ac
@@ -1,8 +1,9 @@
1
1
  name: RSpec
2
2
 
3
3
  on:
4
+ schedule:
5
+ - cron: "0 9 * * 1"
4
6
  push:
5
- branches: [ master ]
6
7
  pull_request:
7
8
 
8
9
  jobs:
@@ -11,8 +12,12 @@ jobs:
11
12
  runs-on: ubuntu-latest
12
13
  strategy:
13
14
  matrix:
14
- ruby-version: ['3.1', '3.2', '3.3']
15
- gemfile: ["Gemfile", "gemfiles/activerecord-61.gemfile", "gemfiles/activerecord-70.gemfile", "gemfiles/activerecord-71.gemfile"]
15
+ ruby-version: ['3.2', '3.3', '3.4']
16
+ gemfile:
17
+ - Gemfile
18
+ - gemfiles/activerecord-70.gemfile
19
+ - gemfiles/activerecord-71.gemfile
20
+ - gemfiles/activerecord-80.gemfile
16
21
  exclude:
17
22
  - ruby-version: '3.2'
18
23
  gemfile: "gemfiles/activerecord-61.gemfile"
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in crono_trigger.gemspec
4
4
  gemspec
5
+
6
+ gem "mutex_m"
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency "activerecord", ">= 4.2"
33
33
  spec.add_dependency "retriable"
34
34
 
35
- spec.add_development_dependency "sqlite3", "~> 1.3"
35
+ spec.add_development_dependency "sqlite3", ">= 1.3"
36
36
  spec.add_development_dependency "mysql2"
37
37
  spec.add_development_dependency "timecop"
38
38
  spec.add_development_dependency "rollbar"
@@ -1,5 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  gem "activerecord", "~> 7.0.0"
4
+ gem "mutex_m"
5
+ gem "sqlite3", "~> 1.7"
4
6
 
5
7
  gemspec :path => "../"
@@ -1,5 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  gem "activerecord", "~> 7.1.0"
4
+ gem "sqlite3", "~> 1.7"
4
5
 
5
6
  gemspec :path => "../"
@@ -1,5 +1,5 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "activerecord", "~> 6.1.0"
3
+ gem "activerecord", "~> 8.0.0"
4
4
 
5
5
  gemspec :path => "../"
@@ -7,13 +7,23 @@ module CronoTrigger
7
7
 
8
8
  scope :recently, ->(schedule_type:) { where(schedule_type: schedule_type).order(executed_at: :desc) }
9
9
 
10
- enum status: {
11
- executing: "executing",
12
- completed: "completed",
13
- failed: "failed",
14
- retrying: "retrying",
15
- aborted: "aborted",
16
- }
10
+ if ActiveRecord.version >= Gem::Version.new("7.0")
11
+ enum :status, {
12
+ executing: "executing",
13
+ completed: "completed",
14
+ failed: "failed",
15
+ retrying: "retrying",
16
+ aborted: "aborted",
17
+ }
18
+ else
19
+ enum status: {
20
+ executing: "executing",
21
+ completed: "completed",
22
+ failed: "failed",
23
+ retrying: "retrying",
24
+ aborted: "aborted",
25
+ }
26
+ end
17
27
 
18
28
  def self.create_with_timestamp!
19
29
  create!(executed_at: Time.current, status: :executing, worker_id: CronoTrigger.config.worker_id)
@@ -5,7 +5,11 @@ module CronoTrigger
5
5
 
6
6
  IGNORE_THRESHOLD = 300
7
7
 
8
- enum signal: {TERM: "TERM", USR1: "USR1", CONT: "CONT", TSTP: "TSTP"}
8
+ if ActiveRecord.version >= Gem::Version.new("7.0")
9
+ enum :signal, {TERM: "TERM", USR1: "USR1", CONT: "CONT", TSTP: "TSTP"}
10
+ else
11
+ enum signal: {TERM: "TERM", USR1: "USR1", CONT: "CONT", TSTP: "TSTP"}
12
+ end
9
13
 
10
14
  scope :sent_to_me, proc {
11
15
  raise "Must set worker_id" unless CronoTrigger.config.worker_id
@@ -7,7 +7,11 @@ module CronoTrigger
7
7
 
8
8
  ALIVE_THRESHOLD = CronoTrigger::Worker::HEARTBEAT_INTERVAL * 5
9
9
 
10
- enum executor_status: {running: "running", quiet: "quiet", shuttingdown: "shuttingdown", shutdown: "shutdown"}
10
+ if ActiveRecord.version >= Gem::Version.new("7.0")
11
+ enum :executor_status, {running: "running", quiet: "quiet", shuttingdown: "shuttingdown", shutdown: "shutdown"}
12
+ else
13
+ enum executor_status: {running: "running", quiet: "quiet", shuttingdown: "shuttingdown", shutdown: "shutdown"}
14
+ end
11
15
 
12
16
  if ActiveRecord.version >= Gem::Version.new("7.1.0")
13
17
  serialize :polling_model_names, coder: JSON
@@ -64,12 +64,12 @@ module CronoTrigger
64
64
 
65
65
  module ClassMethods
66
66
  def executables_with_lock(limit: CronoTrigger.config.executor_thread * 3, worker_count: 1)
67
+ records = []
67
68
  # Fetch more than `limit` records because other workers might have acquired the lock
68
69
  # and this method might not be able to return enough records for the executor to
69
70
  # make the best use of the CPU.
70
71
  ids = executables(limit: limit * worker_count).pluck(:id)
71
72
  maybe_has_next = !ids.empty?
72
- records = []
73
73
  ids.each do |id|
74
74
  transaction do
75
75
  r = all.lock.find(id)
@@ -1,3 +1,3 @@
1
1
  module CronoTrigger
2
- VERSION = "0.8.2"
2
+ VERSION = "0.8.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crono_trigger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - joker1007
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-05-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: chrono
@@ -140,14 +139,14 @@ dependencies:
140
139
  name: sqlite3
141
140
  requirement: !ruby/object:Gem::Requirement
142
141
  requirements:
143
- - - "~>"
142
+ - - ">="
144
143
  - !ruby/object:Gem::Version
145
144
  version: '1.3'
146
145
  type: :development
147
146
  prerelease: false
148
147
  version_requirements: !ruby/object:Gem::Requirement
149
148
  requirements:
150
- - - "~>"
149
+ - - ">="
151
150
  - !ruby/object:Gem::Version
152
151
  version: '1.3'
153
152
  - !ruby/object:Gem::Dependency
@@ -284,9 +283,9 @@ files:
284
283
  - crono_trigger.gemspec
285
284
  - exe/crono_trigger
286
285
  - exe/crono_trigger-web
287
- - gemfiles/activerecord-61.gemfile
288
286
  - gemfiles/activerecord-70.gemfile
289
287
  - gemfiles/activerecord-71.gemfile
288
+ - gemfiles/activerecord-80.gemfile
290
289
  - lib/crono_trigger.rb
291
290
  - lib/crono_trigger/cli.rb
292
291
  - lib/crono_trigger/events.rb
@@ -353,7 +352,6 @@ homepage: https://github.com/joker1007/crono_trigger
353
352
  licenses:
354
353
  - MIT
355
354
  metadata: {}
356
- post_install_message:
357
355
  rdoc_options: []
358
356
  require_paths:
359
357
  - lib
@@ -368,8 +366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
368
366
  - !ruby/object:Gem::Version
369
367
  version: '0'
370
368
  requirements: []
371
- rubygems_version: 3.5.9
372
- signing_key:
369
+ rubygems_version: 4.0.16
373
370
  specification_version: 4
374
371
  summary: In Service Asynchronous Job Scheduler for Rails
375
372
  test_files: []