steve 2.0.2 → 2.0.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 39ac8bc8cd9c5647e61a09673bcc96fed956fb57
4
+ data.tar.gz: 552ae88ed5ed4968234701ddc338f4d08bdc9be2
5
+ SHA512:
6
+ metadata.gz: 7e7f58a6af65971bd4d64a061617d32925931cf8db09d3ee432ce77711d6cecc17f01dbc8a8061b08ff2ca43b87af31d4e3150629a11772cc4079294777d6c7c
7
+ data.tar.gz: 2725c97343de78b411c98b4703c1aad5d64dcece8da36c74543e74722b20e70390c19a89e32fcdcc6842157519fba354947c62ec20283838a13e7bab4a300a6f
@@ -0,0 +1,23 @@
1
+ module ActiveJob
2
+ module QueueAdapters
3
+ class SteveAdapter
4
+
5
+ class << self
6
+ def enqueue(job)
7
+ JobWrapper.queue(job.serialize)
8
+ end
9
+
10
+ def enqueue_at(job, timestamp)
11
+ raise NotImplementedError
12
+ end
13
+ end
14
+
15
+ class JobWrapper < Steve::Job
16
+ def perform
17
+ Base.execute(params)
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -60,4 +60,3 @@ require 'steve/queued_job'
60
60
  require 'steve/archived_job'
61
61
  require 'steve/worker'
62
62
  require 'steve/interface'
63
-
@@ -44,28 +44,23 @@ module Steve
44
44
  ## Execute a new job from the queue. Returns true if a job was executed, or false if a
45
45
  ## job was not found or we couldn't obtain locks for them.
46
46
  def self.execute_jobs(queue = '*', limit = 5)
47
- pending_jobs = ActiveRecord::Base.silence do
48
- jobs = self.where(:status => ['pending', 'delayed'], :worker => nil).where(["run_at <= ?", Time.now.utc]).order("priority asc").limit(5)
49
- jobs = jobs.where(:queue => queue) unless queue.nil? or queue == '*'
50
- jobs.all
51
- end
47
+ jobs = self.where(:status => ['pending', 'delayed'], :worker => nil).where(["run_at <= ?", Time.now.utc]).order("priority asc").limit(5)
48
+ jobs = jobs.where(:queue => queue) unless queue.nil? or queue == '*'
49
+ pending_jobs = jobs.all
52
50
 
53
51
  jobs_executed = Array.new
54
52
  for job in pending_jobs.sort_by { rand() }
55
53
  Steve.log "[#{job.id}] Attempt to aquire lock"
56
54
  if job.lock
57
55
  Steve.log "[#{job.id}] Lock acquired"
58
- ActiveRecord::Base.remove_connection
59
56
  if @child = fork
60
57
  rand
61
58
  Steve.log "[#{job.id}] Forked to #{@child}"
62
59
  $0 = "sj: forked to #{@child} at #{Time.now.utc.to_s(:db)}" unless Steve.keep_parent_process_name
63
- ActiveRecord::Base.establish_connection
64
60
  Process.wait
65
61
  else
66
62
  Steve.log "[#{job.id}] Executing"
67
63
  $0 = "sj: executing job ##{job.id} since #{Time.now.utc.to_s(:db)}"
68
- ActiveRecord::Base.establish_connection
69
64
  Steve.after_job_fork.call if Steve.after_job_fork.is_a?(Proc)
70
65
  job.execute
71
66
  exit
@@ -141,7 +136,7 @@ module Steve
141
136
  ## Get a lock on this job. Returns true if the lock was successful
142
137
  ## otherwise it returns false.
143
138
  def lock
144
- rows = self.class.update_all({:worker => Steve.worker_name}, {:id => self.id, :worker => nil})
139
+ rows = self.class.where(:id => self.id, :worker => nil).update_all(:worker => Steve.worker_name)
145
140
  if rows == 1
146
141
  self.worker = Steve.worker_name
147
142
  return true
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: steve
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
5
- prerelease:
4
+ version: 2.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - aTech Media
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-04-04 00:00:00.000000000 Z
11
+ date: 2014-11-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: will_paginate
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.0.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.0.0
30
27
  description:
@@ -33,40 +30,40 @@ executables: []
33
30
  extensions: []
34
31
  extra_rdoc_files: []
35
32
  files:
33
+ - lib/active_job/queue_adapters/steve_adapter.rb
34
+ - lib/steve.rb
36
35
  - lib/steve/archived_job.rb
36
+ - lib/steve/interface.rb
37
37
  - lib/steve/interface/public/style.css
38
38
  - lib/steve/interface/views/completed.haml
39
39
  - lib/steve/interface/views/failed.haml
40
40
  - lib/steve/interface/views/index.haml
41
41
  - lib/steve/interface/views/object.haml
42
42
  - lib/steve/interface/views/view.haml
43
- - lib/steve/interface.rb
44
43
  - lib/steve/job.rb
45
44
  - lib/steve/queued_job.rb
46
45
  - lib/steve/worker.rb
47
- - lib/steve.rb
48
46
  homepage: http://atechmedia.com
49
47
  licenses: []
48
+ metadata: {}
50
49
  post_install_message:
51
50
  rdoc_options: []
52
51
  require_paths:
53
52
  - lib
54
53
  required_ruby_version: !ruby/object:Gem::Requirement
55
- none: false
56
54
  requirements:
57
- - - ! '>='
55
+ - - ">="
58
56
  - !ruby/object:Gem::Version
59
57
  version: '0'
60
58
  required_rubygems_version: !ruby/object:Gem::Requirement
61
- none: false
62
59
  requirements:
63
- - - ! '>='
60
+ - - ">="
64
61
  - !ruby/object:Gem::Version
65
62
  version: '0'
66
63
  requirements: []
67
64
  rubyforge_project:
68
- rubygems_version: 1.8.23.2
65
+ rubygems_version: 2.2.2
69
66
  signing_key:
70
- specification_version: 3
67
+ specification_version: 4
71
68
  summary: Steve Jobs background job runner
72
69
  test_files: []