chronofage 0.0.3 → 0.0.5

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
  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