knjappserver 0.0.17 → 0.0.18
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/Gemfile +1 -2
- data/Gemfile.lock +1 -4
- data/VERSION +1 -1
- data/knjappserver.gemspec +5 -8
- data/lib/include/class_httpsession_http_request.rb +1 -0
- data/lib/include/class_knjappserver.rb +7 -1
- data/lib/include/class_knjappserver_cleaner.rb +40 -21
- data/lib/include/class_knjappserver_threadding.rb +1 -1
- metadata +22 -33
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -11,8 +11,6 @@ GEM
|
|
11
11
|
rake
|
12
12
|
json (1.6.1)
|
13
13
|
json (1.6.1-java)
|
14
|
-
knjdbrevision (0.0.3)
|
15
|
-
knjrbfw (>= 0.0.3)
|
16
14
|
knjrbfw (0.0.8)
|
17
15
|
mail (2.3.0)
|
18
16
|
i18n (>= 0.4.0)
|
@@ -45,8 +43,7 @@ DEPENDENCIES
|
|
45
43
|
erubis
|
46
44
|
jeweler (~> 1.6.3)
|
47
45
|
json
|
48
|
-
|
49
|
-
knjrbfw (>= 0.0.8)
|
46
|
+
knjrbfw
|
50
47
|
mail
|
51
48
|
rcov
|
52
49
|
rspec (~> 2.3.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.18
|
data/knjappserver.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{knjappserver}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.18"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kasper Johansen"]
|
12
|
-
s.date = %q{2012-02-
|
12
|
+
s.date = %q{2012-02-25}
|
13
13
|
s.description = %q{Which supports a lot of undocumented stuff.}
|
14
14
|
s.email = %q{k@spernj.org}
|
15
15
|
s.executables = ["check_running.rb", "knjappserver_start.rb"]
|
@@ -98,9 +98,8 @@ Gem::Specification.new do |s|
|
|
98
98
|
s.specification_version = 3
|
99
99
|
|
100
100
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
101
|
-
s.add_runtime_dependency(%q<knjrbfw>, [">= 0
|
101
|
+
s.add_runtime_dependency(%q<knjrbfw>, [">= 0"])
|
102
102
|
s.add_runtime_dependency(%q<erubis>, [">= 0"])
|
103
|
-
s.add_runtime_dependency(%q<knjdbrevision>, [">= 0.0.2"])
|
104
103
|
s.add_runtime_dependency(%q<mail>, [">= 0"])
|
105
104
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
106
105
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -109,9 +108,8 @@ Gem::Specification.new do |s|
|
|
109
108
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
110
109
|
s.add_development_dependency(%q<json>, [">= 0"])
|
111
110
|
else
|
112
|
-
s.add_dependency(%q<knjrbfw>, [">= 0
|
111
|
+
s.add_dependency(%q<knjrbfw>, [">= 0"])
|
113
112
|
s.add_dependency(%q<erubis>, [">= 0"])
|
114
|
-
s.add_dependency(%q<knjdbrevision>, [">= 0.0.2"])
|
115
113
|
s.add_dependency(%q<mail>, [">= 0"])
|
116
114
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
117
115
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -121,9 +119,8 @@ Gem::Specification.new do |s|
|
|
121
119
|
s.add_dependency(%q<json>, [">= 0"])
|
122
120
|
end
|
123
121
|
else
|
124
|
-
s.add_dependency(%q<knjrbfw>, [">= 0
|
122
|
+
s.add_dependency(%q<knjrbfw>, [">= 0"])
|
125
123
|
s.add_dependency(%q<erubis>, [">= 0"])
|
126
|
-
s.add_dependency(%q<knjdbrevision>, [">= 0.0.2"])
|
127
124
|
s.add_dependency(%q<mail>, [">= 0"])
|
128
125
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
129
126
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -15,7 +15,8 @@ class Knjappserver
|
|
15
15
|
:default_page => "index.rhtml",
|
16
16
|
:default_filetype => "text/html",
|
17
17
|
:max_requests_working => 20,
|
18
|
-
:size_send => 1024
|
18
|
+
:size_send => 1024,
|
19
|
+
:cleaner_timeout => 300
|
19
20
|
}.merge(config)
|
20
21
|
|
21
22
|
@config[:smtp_args] = {"smtp_host" => "localhost", "smtp_port" => 25} if !@config[:smtp_args]
|
@@ -270,6 +271,11 @@ class Knjappserver
|
|
270
271
|
:name => :request_begin,
|
271
272
|
:connections_max => 1
|
272
273
|
)
|
274
|
+
|
275
|
+
#This event is used if the user himself wants stuff to be cleaned up when the appserver is cleaning up stuff.
|
276
|
+
@events.add_event(
|
277
|
+
:name => :on_clean
|
278
|
+
)
|
273
279
|
end
|
274
280
|
|
275
281
|
#Set up the 'vars'-variable that can be used to set custom global variables for web-requests.
|
@@ -91,32 +91,51 @@ class Knjappserver
|
|
91
91
|
end
|
92
92
|
|
93
93
|
#This flushes (writes) all session-data to the server and deletes old unused sessions from the database.
|
94
|
-
self.timeout(:time =>
|
94
|
+
self.timeout(:time => @config[:cleaner_timeout]) do
|
95
|
+
self.clean
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
#This method can be used to clean the appserver. Dont call this from a HTTP-request.
|
100
|
+
def clean
|
101
|
+
self.paused_exec do
|
95
102
|
STDOUT.print "Cleaning sessions on appserver.\n" if @config[:debug]
|
96
103
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
if session_data[:time_lastused].to_i > time_check
|
105
|
-
newsessions[session_hash] = session_data
|
106
|
-
session_not_ids << session_data[:dbobj].id
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
@sessions = newsessions
|
104
|
+
#Clean up various inactive sessions.
|
105
|
+
session_not_ids = []
|
106
|
+
time_check = Time.now.to_i - 300
|
107
|
+
newsessions = {}
|
108
|
+
@sessions.each do |session_hash, session_data|
|
109
|
+
session_data[:dbobj].flush
|
111
110
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
STDOUT.print "Deleting session: '#{session.id}'.\n" if @config[:debug]
|
116
|
-
@ob.delete(session)
|
117
|
-
@sessions.delete(idhash)
|
111
|
+
if session_data[:time_lastused].to_i > time_check
|
112
|
+
newsessions[session_hash] = session_data
|
113
|
+
session_not_ids << session_data[:dbobj].id
|
118
114
|
end
|
119
115
|
end
|
116
|
+
|
117
|
+
@sessions = newsessions
|
118
|
+
|
119
|
+
STDOUT.print "Delete sessions...\n" if @config[:debug]
|
120
|
+
@ob.list(:Session, {"id_not" => session_not_ids, "date_lastused_below" => (Time.now - 5356800)}) do |session|
|
121
|
+
idhash = session[:idhash]
|
122
|
+
STDOUT.print "Deleting session: '#{session.id}'.\n" if @config[:debug]
|
123
|
+
@ob.delete(session)
|
124
|
+
@sessions.delete(idhash)
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
#Clean database weak references from the tables-module.
|
129
|
+
@db.clean
|
130
|
+
|
131
|
+
#Clean the object-handler.
|
132
|
+
@ob.clean_all
|
133
|
+
|
134
|
+
#Run garbage-collector.
|
135
|
+
GC.start
|
136
|
+
|
137
|
+
#Call various user-connected methods.
|
138
|
+
@events.call(:on_clean) if @events
|
120
139
|
end
|
121
140
|
end
|
122
141
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Knjappserver
|
2
2
|
def initialize_threadding
|
3
3
|
@config[:threadding] = {} if !@config.has_key?(:threadding)
|
4
|
-
@config[:threadding][:max_running] =
|
4
|
+
@config[:threadding][:max_running] = 8 if !@config[:threadding].has_key?(:max_running)
|
5
5
|
|
6
6
|
@threadpool = Knj::Threadpool.new(:threads => @config[:threadding][:max_running], :sleep => 0.1)
|
7
7
|
@threadpool.events.connect(:on_error) do |event, error|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knjappserver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,23 +9,23 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-25 00:00:00.000000000 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: knjrbfw
|
17
|
-
requirement: &
|
17
|
+
requirement: &27853120 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0
|
22
|
+
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *27853120
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: erubis
|
28
|
-
requirement: &
|
28
|
+
requirement: &27852420 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,21 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: knjdbrevision
|
39
|
-
requirement: &16145200 !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
|
-
requirements:
|
42
|
-
- - ! '>='
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 0.0.2
|
45
|
-
type: :runtime
|
46
|
-
prerelease: false
|
47
|
-
version_requirements: *16145200
|
36
|
+
version_requirements: *27852420
|
48
37
|
- !ruby/object:Gem::Dependency
|
49
38
|
name: mail
|
50
|
-
requirement: &
|
39
|
+
requirement: &27837000 !ruby/object:Gem::Requirement
|
51
40
|
none: false
|
52
41
|
requirements:
|
53
42
|
- - ! '>='
|
@@ -55,10 +44,10 @@ dependencies:
|
|
55
44
|
version: '0'
|
56
45
|
type: :runtime
|
57
46
|
prerelease: false
|
58
|
-
version_requirements: *
|
47
|
+
version_requirements: *27837000
|
59
48
|
- !ruby/object:Gem::Dependency
|
60
49
|
name: rspec
|
61
|
-
requirement: &
|
50
|
+
requirement: &27836360 !ruby/object:Gem::Requirement
|
62
51
|
none: false
|
63
52
|
requirements:
|
64
53
|
- - ~>
|
@@ -66,10 +55,10 @@ dependencies:
|
|
66
55
|
version: 2.3.0
|
67
56
|
type: :development
|
68
57
|
prerelease: false
|
69
|
-
version_requirements: *
|
58
|
+
version_requirements: *27836360
|
70
59
|
- !ruby/object:Gem::Dependency
|
71
60
|
name: bundler
|
72
|
-
requirement: &
|
61
|
+
requirement: &27835720 !ruby/object:Gem::Requirement
|
73
62
|
none: false
|
74
63
|
requirements:
|
75
64
|
- - ~>
|
@@ -77,10 +66,10 @@ dependencies:
|
|
77
66
|
version: 1.0.0
|
78
67
|
type: :development
|
79
68
|
prerelease: false
|
80
|
-
version_requirements: *
|
69
|
+
version_requirements: *27835720
|
81
70
|
- !ruby/object:Gem::Dependency
|
82
71
|
name: jeweler
|
83
|
-
requirement: &
|
72
|
+
requirement: &27835120 !ruby/object:Gem::Requirement
|
84
73
|
none: false
|
85
74
|
requirements:
|
86
75
|
- - ~>
|
@@ -88,10 +77,10 @@ dependencies:
|
|
88
77
|
version: 1.6.3
|
89
78
|
type: :development
|
90
79
|
prerelease: false
|
91
|
-
version_requirements: *
|
80
|
+
version_requirements: *27835120
|
92
81
|
- !ruby/object:Gem::Dependency
|
93
82
|
name: rcov
|
94
|
-
requirement: &
|
83
|
+
requirement: &27834480 !ruby/object:Gem::Requirement
|
95
84
|
none: false
|
96
85
|
requirements:
|
97
86
|
- - ! '>='
|
@@ -99,10 +88,10 @@ dependencies:
|
|
99
88
|
version: '0'
|
100
89
|
type: :development
|
101
90
|
prerelease: false
|
102
|
-
version_requirements: *
|
91
|
+
version_requirements: *27834480
|
103
92
|
- !ruby/object:Gem::Dependency
|
104
93
|
name: sqlite3
|
105
|
-
requirement: &
|
94
|
+
requirement: &27833880 !ruby/object:Gem::Requirement
|
106
95
|
none: false
|
107
96
|
requirements:
|
108
97
|
- - ! '>='
|
@@ -110,10 +99,10 @@ dependencies:
|
|
110
99
|
version: '0'
|
111
100
|
type: :development
|
112
101
|
prerelease: false
|
113
|
-
version_requirements: *
|
102
|
+
version_requirements: *27833880
|
114
103
|
- !ruby/object:Gem::Dependency
|
115
104
|
name: json
|
116
|
-
requirement: &
|
105
|
+
requirement: &27833320 !ruby/object:Gem::Requirement
|
117
106
|
none: false
|
118
107
|
requirements:
|
119
108
|
- - ! '>='
|
@@ -121,7 +110,7 @@ dependencies:
|
|
121
110
|
version: '0'
|
122
111
|
type: :development
|
123
112
|
prerelease: false
|
124
|
-
version_requirements: *
|
113
|
+
version_requirements: *27833320
|
125
114
|
description: Which supports a lot of undocumented stuff.
|
126
115
|
email: k@spernj.org
|
127
116
|
executables:
|
@@ -217,7 +206,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
206
|
version: '0'
|
218
207
|
segments:
|
219
208
|
- 0
|
220
|
-
hash: -
|
209
|
+
hash: -3895621098014444760
|
221
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
211
|
none: false
|
223
212
|
requirements:
|