chronofage 0.0.3 → 0.0.5

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
  SHA1:
3
- metadata.gz: b27efc982e3485c46cc2f8d31cddbe877d32310e
4
- data.tar.gz: 63e3cc54c6812ea563d1e5939d3d419a5d41e8d5
3
+ metadata.gz: 18c92206f64f9d01f3f00def00f4683b4bef6ed5
4
+ data.tar.gz: 25c04b48128788c746dce2e654cc516e4a707c97
5
5
  SHA512:
6
- metadata.gz: 071a13893a83ac871e1764e49cf1b91913e426d0815ceb6bbc4f2a7d765310ce07c0e8758e5843ee22bd5b588203f9d787482054b915d81c3256f5c1bda1b02a
7
- data.tar.gz: f46f2a9e3e3ee79fea90d96bf8ae37495daa045e07203894eb4a982856e33b5e98bae6b0bdc31caa71404eadeacde584912b52a95b3d87940e258a4ceb782807
6
+ metadata.gz: eca7229c60618d760bc27391439003d93bc85be1928afef60dd3f42e373198f1a192094bb0f2bc820df0d0aaca1c21fcc36921906c90e2451d831589fcdc0a18
7
+ data.tar.gz: 3436a72eacc3d26171dc976a80f290496ae9951a4651c40588865af1d8072ebb2904821da2b6726370ab70129863b06c185387cb8885bc09b3fc98c3f0ed0283
@@ -0,0 +1,5 @@
1
+ class AddDefaultPriority < ActiveRecord::Migration[5.0]
2
+ def change
3
+ change_column_default :chronofage_jobs, :priority, 0
4
+ end
5
+ end
@@ -4,10 +4,10 @@ module ActiveJob
4
4
  def enqueue(job)
5
5
  Chronofage::Job.create!({
6
6
  job_class: job.class,
7
- arguments: ActiveJob::Arguments.serialize(job.arguments).to_json,
7
+ arguments: job.serialize.to_json,
8
8
  job_id: job.job_id,
9
9
  queue_name: job.queue_name,
10
- priority: job.priority
10
+ priority: job.priority || 0
11
11
  })
12
12
  end
13
13
 
@@ -9,20 +9,20 @@ module Chronofage
9
9
  ready.where(queue_name: queue_name).order(priority: :asc).first
10
10
  end
11
11
 
12
- def execute!
13
- start!
14
- job_class.constantize.perform_now(*deserialized_arguments)
15
- done!
12
+ def perform
13
+ started!
14
+ ActiveJob::Base.execute(job_data)
15
+ completed!
16
16
  rescue
17
17
  failed!
18
18
  raise
19
19
  end
20
20
 
21
- def start!
21
+ def started!
22
22
  update!(started_at: Time.now, host: Chronofage::Job.host)
23
23
  end
24
24
 
25
- def done!
25
+ def completed!
26
26
  update!(completed_at: Time.now)
27
27
  end
28
28
 
@@ -30,12 +30,28 @@ module Chronofage
30
30
  update!(failed_at: Time.now)
31
31
  end
32
32
 
33
+ def ready?
34
+ state == :ready
35
+ end
36
+
37
+ def started?
38
+ state == :started
39
+ end
40
+
41
+ def failed?
42
+ state == :failed
43
+ end
44
+
45
+ def completed?
46
+ state == :completed
47
+ end
48
+
33
49
  def retry!
34
- job_class.constantize.perform_later(*deserialized_arguments)
50
+ job_class.constantize.perform_later(*(ActiveJob::Arguments.deserialize(job_data["arguments"])))
35
51
  end
36
52
 
37
- def deserialized_arguments
38
- ActiveJob::Arguments.deserialize(JSON.parse(arguments))
53
+ def job_data
54
+ JSON.parse(arguments)
39
55
  end
40
56
 
41
57
  def concurrents
@@ -48,7 +64,7 @@ module Chronofage
48
64
  elsif started_at.present? && failed_at.present?
49
65
  :failed
50
66
  elsif started_at.present?
51
- :running
67
+ :started
52
68
  else
53
69
  :ready
54
70
  end
@@ -1,3 +1,3 @@
1
1
  module Chronofage
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -3,7 +3,7 @@ namespace :chronofage_engine do
3
3
  task :execute, [:queue_name, :concurrency] => :environment do |t, args|
4
4
  job = Chronofage::Job.next(args.queue_name)
5
5
  if job.present? && job.concurrents.count < args.concurrency.to_i
6
- job.execute!
6
+ job.perform
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chronofage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Goya
@@ -25,6 +25,7 @@ files:
25
25
  - Rakefile
26
26
  - chronofage.gemspec
27
27
  - db/migrate/1_create_job_table.rb
28
+ - db/migrate/2_add_default_priority.rb
28
29
  - lib/active_job/queue_adapters/chronofage_adapter.rb
29
30
  - lib/chronofage.rb
30
31
  - lib/chronofage/engine.rb