Introducing extended app process management.
- Pre-fork 'processes.spare' application processes; - fork more processes to keep 'processes.spare' idle processes; - fork on-demand up to 'processes.max' count; - scale down idle application processes above 'processes.spare' after 'processes.idle_timeout'; - number of concurrently started application processes also limited by 'processes.spare' (or 1, if spare is 0).
This commit is contained in:
@@ -9,7 +9,7 @@ class TestUnitBasic(unit.TestUnitControl):
|
||||
conf_app = {
|
||||
"app": {
|
||||
"type": "python",
|
||||
"workers": 1,
|
||||
"processes": { "spare": 0 },
|
||||
"path": "/app",
|
||||
"module": "wsgi"
|
||||
}
|
||||
@@ -44,7 +44,7 @@ class TestUnitBasic(unit.TestUnitControl):
|
||||
{
|
||||
"app": {
|
||||
"type": "python",
|
||||
"workers": 1,
|
||||
"processes": { "spare": 0 },
|
||||
"path": "/app",
|
||||
"module": "wsgi"
|
||||
}
|
||||
@@ -58,7 +58,7 @@ class TestUnitBasic(unit.TestUnitControl):
|
||||
{
|
||||
"app": {
|
||||
"type": "python",
|
||||
"workers": 1,
|
||||
"processes": { "spare": 0 },
|
||||
"path": "/app",
|
||||
"module":"wsgi"
|
||||
}
|
||||
@@ -71,7 +71,7 @@ class TestUnitBasic(unit.TestUnitControl):
|
||||
self.assertEqual(self.conf_get('/applications/app'),
|
||||
{
|
||||
"type": "python",
|
||||
"workers": 1,
|
||||
"processes": { "spare": 0 },
|
||||
"path": "/app",
|
||||
"module": "wsgi"
|
||||
},
|
||||
@@ -82,8 +82,8 @@ class TestUnitBasic(unit.TestUnitControl):
|
||||
|
||||
self.assertEqual(self.conf_get('/applications/app/type'), 'python',
|
||||
'type')
|
||||
self.assertEqual(self.conf_get('/applications/app/workers'), 1,
|
||||
'workers')
|
||||
self.assertEqual(self.conf_get('/applications/app/processes/spare'), 0,
|
||||
'spare')
|
||||
|
||||
def test_python_get_listeners(self):
|
||||
self.conf(self.conf_basic)
|
||||
@@ -128,9 +128,9 @@ class TestUnitBasic(unit.TestUnitControl):
|
||||
def test_python_change_application(self):
|
||||
self.conf(self.conf_basic)
|
||||
|
||||
self.conf('30', '/applications/app/workers')
|
||||
self.assertEqual(self.conf_get('/applications/app/workers'), 30,
|
||||
'change application workers')
|
||||
self.conf('30', '/applications/app/processes/max')
|
||||
self.assertEqual(self.conf_get('/applications/app/processes/max'), 30,
|
||||
'change application max')
|
||||
|
||||
self.conf('"/www"', '/applications/app/path')
|
||||
self.assertEqual(self.conf_get('/applications/app/path'), '/www',
|
||||
|
||||
Reference in New Issue
Block a user