undelayed_job 0.0.1
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.
- data/lib/delayed/backend/undelayed.rb +21 -0
- data/lib/undelayed_job.rb +2 -0
- data/lib/undelayed_job/version.rb +7 -0
- data/spec/sample_jobs.rb +25 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/undelayed_spec.rb +17 -0
- metadata +100 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
module Delayed
|
2
|
+
module Backend
|
3
|
+
module Undelayed
|
4
|
+
class Job
|
5
|
+
include Delayed::Backend::Base
|
6
|
+
attr_accessor :payload_object
|
7
|
+
def initialize(payload_object)
|
8
|
+
self.payload_object = payload_object
|
9
|
+
end
|
10
|
+
def self.create(args)
|
11
|
+
job = self.new(args[:payload_object])
|
12
|
+
job.invoke_job
|
13
|
+
job
|
14
|
+
end
|
15
|
+
def self.find_available(worker_name, limit = 5, max_run_time = Worker.max_run_time)
|
16
|
+
[]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/spec/sample_jobs.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
class SimpleJob
|
2
|
+
cattr_accessor :runs; self.runs = 0
|
3
|
+
def perform; @@runs += 1; end
|
4
|
+
end
|
5
|
+
|
6
|
+
class ErrorJob
|
7
|
+
cattr_accessor :runs; self.runs = 0
|
8
|
+
def perform; raise 'did not work'; end
|
9
|
+
end
|
10
|
+
|
11
|
+
class LongRunningJob
|
12
|
+
def perform; sleep 250; end
|
13
|
+
end
|
14
|
+
|
15
|
+
class OnPermanentFailureJob < SimpleJob
|
16
|
+
def on_permanent_failure
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module M
|
21
|
+
class ModuleJob
|
22
|
+
cattr_accessor :runs; self.runs = 0
|
23
|
+
def perform; @@runs += 1; end
|
24
|
+
end
|
25
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Delayed::Backend::Undelayed::Job do
|
4
|
+
subject {Delayed::Backend::Undelayed::Job}
|
5
|
+
it {should respond_to :enqueue}
|
6
|
+
|
7
|
+
it 'should execute the job immediately' do
|
8
|
+
task = SimpleJob.new
|
9
|
+
task.should_receive(:perform)
|
10
|
+
subject.enqueue task
|
11
|
+
end
|
12
|
+
|
13
|
+
it do
|
14
|
+
subject.find_available('worker').should be_empty
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
metadata
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: undelayed_job
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- David Schneider
|
14
|
+
- Stephan Zalewski
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2010-07-08 00:00:00 +02:00
|
20
|
+
default_executable:
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
23
|
+
name: delayed_job
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
version: "0"
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
type: :development
|
49
|
+
version_requirements: *id002
|
50
|
+
description: Undelayed_job jobs provides a database-less backand for delayed_job that executes immediately without a separate worker process.
|
51
|
+
email: hello@foo-labs.com
|
52
|
+
executables: []
|
53
|
+
|
54
|
+
extensions: []
|
55
|
+
|
56
|
+
extra_rdoc_files: []
|
57
|
+
|
58
|
+
files:
|
59
|
+
- lib/delayed/backend/undelayed.rb
|
60
|
+
- lib/undelayed_job/version.rb
|
61
|
+
- lib/undelayed_job.rb
|
62
|
+
- spec/sample_jobs.rb
|
63
|
+
- spec/spec_helper.rb
|
64
|
+
- spec/undelayed_spec.rb
|
65
|
+
has_rdoc: true
|
66
|
+
homepage: https://github.com/foolabs/undelayed_job
|
67
|
+
licenses: []
|
68
|
+
|
69
|
+
post_install_message:
|
70
|
+
rdoc_options: []
|
71
|
+
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
hash: 3
|
80
|
+
segments:
|
81
|
+
- 0
|
82
|
+
version: "0"
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 3
|
89
|
+
segments:
|
90
|
+
- 0
|
91
|
+
version: "0"
|
92
|
+
requirements: []
|
93
|
+
|
94
|
+
rubyforge_project:
|
95
|
+
rubygems_version: 1.3.7
|
96
|
+
signing_key:
|
97
|
+
specification_version: 3
|
98
|
+
summary: undelaye delayed_job
|
99
|
+
test_files: []
|
100
|
+
|