resque-access_worker_from_job 0.2.3 → 0.3.0
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/README.rdoc +0 -6
- data/VERSION +1 -1
- data/lib/resque/plugins/access_worker_from_job.rb +9 -3
- data/resque-access_worker_from_job.gemspec +3 -3
- metadata +18 -9
data/README.rdoc
CHANGED
@@ -43,12 +43,6 @@ as well.
|
|
43
43
|
|
44
44
|
|
45
45
|
== Warnings
|
46
|
-
=== Argument errors in mixed environments
|
47
|
-
Internally, this overrides Resque::Job to append the worker to the argument list passed to any <code>JobClass#perform</code>
|
48
|
-
method. For a class that extends Resque::Plugins::AccessWorkerFromJob, this is handled transparently (worker is
|
49
|
-
removed from the argument list and is available via the <code>@worker</code> instance variable, instead). For mixed environments
|
50
|
-
where not all jobs to be run extend AccessWorkerFromJob, and where some of these expect a set number of arguments,
|
51
|
-
this may cause problems ("wrong number of arguments" exceptions).
|
52
46
|
|
53
47
|
=== Ephemeral nature of worker changes
|
54
48
|
Be careful to note that each job forks before running, so instance variables will be a _copy_ and, if changed,
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
@@ -1,11 +1,15 @@
|
|
1
1
|
require 'resque' unless defined?(Resque)
|
2
2
|
|
3
3
|
module Resque # :nodoc:
|
4
|
-
# Resque-AccessWorkerFromJob plugin overrides the Resque::Job#args method to
|
4
|
+
# Resque-AccessWorkerFromJob plugin overrides the Resque::Job#args method to
|
5
|
+
# pass the worker along as the last argument, if the class on which to call perform wants it.
|
5
6
|
class Job
|
7
|
+
|
6
8
|
# Overridden args appends the worker when returning the list of args represented in this job's payload.
|
7
9
|
def args
|
8
|
-
@payload['args']
|
10
|
+
base_args = @payload['args'] || []
|
11
|
+
base_args << worker if payload_class.respond_to?(:wants_worker_access) && payload_class.wants_worker_access
|
12
|
+
return base_args
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
@@ -43,12 +47,14 @@ module Resque # :nodoc:
|
|
43
47
|
attr_accessor :required_worker_class, :worker
|
44
48
|
|
45
49
|
def self.extended(base)
|
46
|
-
|
47
50
|
unless base.methods.include?('perform')
|
48
51
|
raise %Q{You must call "extend Resque::Plugins::AccessWorkerFromJob" AFTER (below) defining the perform method}
|
49
52
|
end
|
50
53
|
|
51
54
|
class << base
|
55
|
+
def wants_worker_access
|
56
|
+
true
|
57
|
+
end
|
52
58
|
|
53
59
|
# Remove worker from last argument, so can write their perform method assuming just the arguments
|
54
60
|
# they sent it, without worrying about the appended worker.
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{resque-access_worker_from_job}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kali Donovan"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-06-02}
|
13
13
|
s.description = %q{By allowing multiple jobs to share a single socket, which is persisted over the life of the worker, this plugin is an important building block for implementing a Resque-based service send background iPhone messages via the Apple Push Notification servers.}
|
14
14
|
s.email = %q{kali.donovan@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.homepage = %q{http://github.com/kdonovan/resque-access_worker_from_job}
|
33
33
|
s.rdoc_options = ["--charset=UTF-8"]
|
34
34
|
s.require_paths = ["lib"]
|
35
|
-
s.rubygems_version = %q{1.3.
|
35
|
+
s.rubygems_version = %q{1.3.6}
|
36
36
|
s.summary = %q{Resque plugin to allow jobs access to their calling worker at runtime.}
|
37
37
|
|
38
38
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque-access_worker_from_job
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 3
|
8
|
+
- 0
|
9
|
+
version: 0.3.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Kali Donovan
|
@@ -9,19 +14,21 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-06-02 00:00:00 -07:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: resque
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
23
29
|
version: "0"
|
24
|
-
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
25
32
|
description: By allowing multiple jobs to share a single socket, which is persisted over the life of the worker, this plugin is an important building block for implementing a Resque-based service send background iPhone messages via the Apple Push Notification servers.
|
26
33
|
email: kali.donovan@gmail.com
|
27
34
|
executables: []
|
@@ -56,18 +63,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
56
63
|
requirements:
|
57
64
|
- - ">="
|
58
65
|
- !ruby/object:Gem::Version
|
66
|
+
segments:
|
67
|
+
- 0
|
59
68
|
version: "0"
|
60
|
-
version:
|
61
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
70
|
requirements:
|
63
71
|
- - ">="
|
64
72
|
- !ruby/object:Gem::Version
|
73
|
+
segments:
|
74
|
+
- 0
|
65
75
|
version: "0"
|
66
|
-
version:
|
67
76
|
requirements: []
|
68
77
|
|
69
78
|
rubyforge_project:
|
70
|
-
rubygems_version: 1.3.
|
79
|
+
rubygems_version: 1.3.6
|
71
80
|
signing_key:
|
72
81
|
specification_version: 3
|
73
82
|
summary: Resque plugin to allow jobs access to their calling worker at runtime.
|