beanworker 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/README.rdoc +3 -1
- data/lib/beanworker.rb +1 -1
- data/lib/beanworker/worker.rb +16 -10
- metadata +7 -7
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -49,7 +49,9 @@ jobs.rb:
|
|
49
49
|
schedule :scheduled_job, 2*24*3600, at: '04:30', timeout: 3600, { param1: 'some_value' }
|
50
50
|
end
|
51
51
|
|
52
|
-
|
52
|
+
SomeWorker.logger = AnotherWorker.logger = Logger.new('/var/log/somelog.log')
|
53
|
+
|
54
|
+
SomeWorker.perform 2, :some_job.
|
53
55
|
:another_job
|
54
56
|
|
55
57
|
AnotherWorker.perform 1, :scheduled_jov
|
data/lib/beanworker.rb
CHANGED
data/lib/beanworker/worker.rb
CHANGED
@@ -9,7 +9,8 @@ module Beanworker
|
|
9
9
|
num.times do
|
10
10
|
Thread.new do
|
11
11
|
connection = Beanqueue.connect Beanworker.connection_config
|
12
|
-
tubes.each { |tube| connection.watch(tube.gsub('_', '.')) }
|
12
|
+
tubes.each { |tube| connection.watch(tube.to_s.gsub('_', '.')) }
|
13
|
+
logger.info("Listening: #{tubes.inspect}") if logger
|
13
14
|
loop do
|
14
15
|
get_one_job connection
|
15
16
|
end
|
@@ -23,15 +24,19 @@ module Beanworker
|
|
23
24
|
Thread.new do
|
24
25
|
loop do
|
25
26
|
sleep(at - Time.now)
|
26
|
-
|
27
|
-
self.send(name, *args)
|
28
|
-
end
|
27
|
+
work_job(name, timeout_secs, args, @need_fork)
|
29
28
|
at += frequency
|
30
29
|
end
|
31
30
|
end
|
32
31
|
end
|
33
32
|
|
34
|
-
|
33
|
+
def logger=(l)
|
34
|
+
@logger = l
|
35
|
+
end
|
36
|
+
|
37
|
+
def fork_default(val)
|
38
|
+
@need_fork = val
|
39
|
+
end
|
35
40
|
|
36
41
|
def get_one_job(connection)
|
37
42
|
job = connection.reserve
|
@@ -41,7 +46,8 @@ module Beanworker
|
|
41
46
|
job.delete
|
42
47
|
rescue SystemExit
|
43
48
|
raise
|
44
|
-
rescue
|
49
|
+
rescue => e
|
50
|
+
logger.error(e.backtrace.unshift(e.message)) if logger
|
45
51
|
job.bury rescue nil
|
46
52
|
end
|
47
53
|
|
@@ -61,10 +67,6 @@ module Beanworker
|
|
61
67
|
end
|
62
68
|
end
|
63
69
|
|
64
|
-
def fork_default(val)
|
65
|
-
@need_fork = val
|
66
|
-
end
|
67
|
-
|
68
70
|
def make_first_schedule(frequency, at)
|
69
71
|
if at && (frequency % (24*3600) == 0)
|
70
72
|
t = Time.parse at
|
@@ -73,5 +75,9 @@ module Beanworker
|
|
73
75
|
Time.now + frequency
|
74
76
|
end
|
75
77
|
end
|
78
|
+
|
79
|
+
def logger
|
80
|
+
@logger ||= Logger.new(STDOUT)
|
81
|
+
end
|
76
82
|
end
|
77
83
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beanworker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-10-24 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: beanstalk-client
|
16
|
-
requirement: &
|
16
|
+
requirement: &7708700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *7708700
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: beanqueue
|
27
|
-
requirement: &
|
27
|
+
requirement: &7705900 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.1.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *7705900
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: hoe
|
38
|
-
requirement: &
|
38
|
+
requirement: &7704520 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '2.12'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *7704520
|
47
47
|
description: ! 'It is a worker-side Beanstalk-based job-queueing dispatcher
|
48
48
|
|
49
49
|
This is a pre-release, I will complete tests and docs in couple days'
|