daemonizer 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +48 -30
  2. data/VERSION +1 -1
  3. data/daemonizer.gemspec +2 -2
  4. 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. Two workers
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. Demfile (similar to Gemfile, Rakefile)** as a configuration file. It is
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
- **3. Monitoring**: If child is found dead it will be immediately
24
+ **2. Monitoring**: If child is found dead it will be immediately
28
25
  restored
29
26
 
30
- **4. Logging** (via [http://log4r.rubyforge.org/](log4r))
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
- pool :new_daemonizer do
81
- workers 4
82
- poll_period 5
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
- #lambda-option (transparent for daemonizer, fully processed by handler)
98
- set_option :on_error, lambda { |object| object.logger.fatal "epic fail"}
99
-
100
- #executes after worker forked but before start block invoked
101
- after_fork do |logger, worker_id, workers_count|
102
- #reconnect to db, etc.
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 before_init(block)
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 after_init
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.2
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.2"
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-16}
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: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 2
10
- version: 0.4.2
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-16 00:00:00 +04:00
18
+ date: 2010-07-17 00:00:00 +04:00
19
19
  default_executable: daemonizer
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency