rake_server 0.0.1 → 0.0.2
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 +27 -2
- data/VERSION +1 -1
- data/lib/rake_server/server.rb +9 -4
- data/pkg/.gitignore +1 -0
- metadata +4 -3
data/README.rdoc
CHANGED
@@ -18,8 +18,33 @@ needing to load the application environment from scratch each time a task is
|
|
18
18
|
executed. It may also be useful for remote invocation of Rake tasks, but that is
|
19
19
|
not the main goal.
|
20
20
|
|
21
|
-
===
|
21
|
+
=== Basic usage
|
22
22
|
|
23
23
|
$ cd /path/to/my/rails/app
|
24
|
-
$ rake-server environment
|
24
|
+
$ rake-server start environment
|
25
25
|
$ rake-client db:migrate
|
26
|
+
|
27
|
+
Valid commands to rake-server are `start`, `stop`, `run`, and `restart`. Any
|
28
|
+
additional arguments name Rake tasks that should be eagerly run when the server
|
29
|
+
starts. In the above example, we call the `environment` task, which loads the
|
30
|
+
Rails environment for fast invocation of Rails-dependent tasks by the client.
|
31
|
+
|
32
|
+
=== Fork hooks
|
33
|
+
|
34
|
+
RakeServer forks a separate process each time the client invokes a task. In a
|
35
|
+
Rails environment, it's necessary to re-connect to ActiveRecord each time the
|
36
|
+
application forks. RakeServer provides pre-fork and post-fork hooks to make this
|
37
|
+
easy.
|
38
|
+
|
39
|
+
First, in your Rakefile:
|
40
|
+
|
41
|
+
namespace :rake_server
|
42
|
+
task :fork_hooks
|
43
|
+
RakeServer.before_fork { ActiveRecord::Base.remove_connection }
|
44
|
+
RakeServer.after_fork { ActiveRecord::Base.establish_connection }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
Then, when you start the server, specify your fork hooks setup as an eager task:
|
49
|
+
|
50
|
+
$ rake-server start environment rake_server:fork_hooks
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/rake_server/server.rb
CHANGED
@@ -24,10 +24,15 @@ module RakeServer
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def stop(options = {})
|
27
|
-
pid_file = File.join(pid_dir(options), "rake-server.pid")
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
if (pid_file = File.join(pid_dir(options), "rake-server.pid"))
|
28
|
+
pid = IO.read(pid_file).to_i
|
29
|
+
begin
|
30
|
+
Process.kill("TERM", pid)
|
31
|
+
rescue Errno::ESRCH
|
32
|
+
# No worries
|
33
|
+
end
|
34
|
+
FileUtils.rm(pid_file)
|
35
|
+
end
|
31
36
|
end
|
32
37
|
|
33
38
|
def run(eager_tasks, options = {})
|
data/pkg/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Mat Brown
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-04-
|
18
|
+
date: 2010-04-07 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -43,6 +43,7 @@ files:
|
|
43
43
|
- lib/rake_server.rb
|
44
44
|
- lib/rake_server/client.rb
|
45
45
|
- lib/rake_server/server.rb
|
46
|
+
- pkg/.gitignore
|
46
47
|
- tasks/gemspec.rake
|
47
48
|
- test/Rakefile
|
48
49
|
- tmp/.gitignore
|