daemonizer 0.4.2 → 0.4.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.
- data/README.md +48 -30
- data/VERSION +1 -1
- data/daemonizer.gemspec +2 -2
- metadata +4 -4
data/README.md
CHANGED
@@ -12,22 +12,19 @@ Synopsis
|
|
12
12
|
--------
|
13
13
|
|
14
14
|
Daemonizer is a simple ruby framework to create custom daemons. It is fully
|
15
|
-
compatible with EventMachine, Rails and any other Ruby frameworks.
|
16
|
-
type supported - forked and threaded.
|
15
|
+
compatible with EventMachine, Rails and any other Ruby frameworks.
|
17
16
|
|
18
17
|
|
19
18
|
Feature List
|
20
19
|
------------
|
21
20
|
|
22
|
-
**1.
|
21
|
+
**1. Daemonfile (similar to Gemfile, Rakefile)** as a configuration file. It is
|
23
22
|
possible to describe different background pools there.
|
24
|
-
|
25
|
-
**2. Two engines**: :thread and :fork. (thread is currently broken)
|
26
23
|
|
27
|
-
**
|
24
|
+
**2. Monitoring**: If child is found dead it will be immediately
|
28
25
|
restored
|
29
26
|
|
30
|
-
**
|
27
|
+
**3. Logging**
|
31
28
|
|
32
29
|
Installing
|
33
30
|
----------
|
@@ -44,10 +41,10 @@ Usage
|
|
44
41
|
**Demfile example:**
|
45
42
|
|
46
43
|
workers 2
|
44
|
+
poll_period 5
|
47
45
|
|
48
46
|
pool :daemonizer do
|
49
47
|
workers 4
|
50
|
-
poll_period 5
|
51
48
|
log_file "log/daemonizer.log" #relative to Demfile
|
52
49
|
|
53
50
|
prepare do |logger, block|
|
@@ -77,44 +74,65 @@ Usage
|
|
77
74
|
end
|
78
75
|
end
|
79
76
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
log_file "log/daemonizer.log" #relative to Demfile
|
84
|
-
|
85
|
-
handler MyBackgroundSolution::DaemonizerHandler
|
86
|
-
|
87
|
-
not_cow_friendly #disable Copy-On-Write friendly (enabled by default)
|
88
|
-
|
89
|
-
#automatically-parsed option by daemonizer
|
90
|
-
set_option :queue do |worker_id, worker_count|
|
91
|
-
"queue_#{worker_id}"
|
77
|
+
settings_group do
|
78
|
+
before_start do |logger, worker_id, workers_count|
|
79
|
+
#reconnect to db, etc.
|
92
80
|
end
|
93
|
-
|
81
|
+
|
94
82
|
#simple string option
|
95
83
|
set_option :author, "Gleb Pomykalov"
|
84
|
+
|
85
|
+
pool :new_daemonizer do
|
86
|
+
workers 4
|
87
|
+
log_file "log/daemonizer.log" #relative to Demfile
|
88
|
+
|
89
|
+
handler MyBackgroundSolution::DaemonizerHandler
|
96
90
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
91
|
+
not_cow_friendly #disable Copy-On-Write friendly (enabled by default)
|
92
|
+
|
93
|
+
#automatically-parsed option by daemonizer
|
94
|
+
set_option :queue do |worker_id, worker_count|
|
95
|
+
"queue_#{worker_id}"
|
96
|
+
end
|
97
|
+
|
98
|
+
#lambda-option (transparent for daemonizer, fully processed by handler)
|
99
|
+
set_option :on_error, lambda { |object| object.logger.fatal "epic fail"}
|
103
100
|
end
|
104
|
-
end
|
105
101
|
|
106
102
|
|
103
|
+
pool :new_daemonizer2 do
|
104
|
+
workers 4
|
105
|
+
log_file "log/daemonizer2.log" #relative to Demfile
|
106
|
+
|
107
|
+
handler MyBackgroundSolution::DaemonizerHandler
|
108
|
+
|
109
|
+
not_cow_friendly #disable Copy-On-Write friendly (enabled by default)
|
110
|
+
|
111
|
+
#automatically-parsed option by daemonizer
|
112
|
+
set_option :queue do |worker_id, worker_count|
|
113
|
+
"another_queue_#{worker_id}"
|
114
|
+
end
|
115
|
+
|
116
|
+
after_prepare do |logger|
|
117
|
+
require 'something'
|
118
|
+
end
|
119
|
+
|
120
|
+
#lambda-option (transparent for daemonizer, fully processed by handler)
|
121
|
+
set_option :on_error, lambda { |object| object.logger.fatal "epic fail"}
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
107
125
|
**Handler example**
|
108
126
|
|
109
127
|
module MyBackgroundSolution
|
110
128
|
class DaemonizerHandler < Daemonizer::Handler
|
111
|
-
def
|
129
|
+
def prepare(block)
|
112
130
|
require File.join(Daemonizer.root, '/config/environment') #Require rails
|
113
131
|
require 'my_background_solution/worker' #Require our code
|
114
132
|
super #now we are ready to fork
|
115
133
|
end
|
116
134
|
|
117
|
-
def
|
135
|
+
def start
|
118
136
|
#we are in worker process
|
119
137
|
logger.info "Starting cycle. We are number #{worker_id} from #{workers_count}"
|
120
138
|
logger.info "Options - #{option(:queue)}" #We can get option :queue, which is set with set_option in pool configuration
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.3
|
data/daemonizer.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{daemonizer}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Gleb Pomykalov"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-17}
|
13
13
|
s.default_executable = %q{daemonizer}
|
14
14
|
s.description = %q{Inspired by bundler and rack. Mostly built on top of Alexey Kovyrin's loops code. http://github.com/kovyrin/loops}
|
15
15
|
s.email = %q{glebpom@gmail.com}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daemonizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 3
|
10
|
+
version: 0.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gleb Pomykalov
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-17 00:00:00 +04:00
|
19
19
|
default_executable: daemonizer
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|