Fixed some more things in the moved procpool.

This commit is contained in:
Griatch 2012-09-22 21:14:17 +02:00
parent 4855558cc7
commit 102705902f
3 changed files with 10 additions and 13 deletions

View file

@ -111,10 +111,8 @@ class PythonProcPoolChild(AMPChild):
try:
environment = from_pickle(environment)
available_vars.update(environment)
except Exception, e:
except Exception:
logger.log_trace()
_return(e)
# try to execute with eval first
try:
ret = eval(source, {}, available_vars)
@ -132,12 +130,14 @@ class PythonProcPoolChild(AMPChild):
to_recache = to_pickle(objs, emptypickle=False) or ""
# empty the list without loosing memory reference
PROC_MODIFIED_OBJS[:] = []
print "... executecode done."
return {'response': ret,
'recached': to_recache}
ExecuteCode.responder(executecode)
#
# Procpool run_async - Server-side access function for executing code in another process
#
_PPOOL = None
_SESSIONS = None
@ -231,7 +231,7 @@ def run_async(to_execute, *args, **kwargs):
except AttributeError:
_PPOOL = False
use_timeout = kwargs.pop("proc_timeout", None)
use_timeout = kwargs.pop("proc_timeout", _PPOOL.timeout)
# helper converters for callbacks/errbacks
def convert_return(f):

View file

@ -30,12 +30,13 @@ PROCPOOL_DEBUG = True
PROCPOOL_MIN_NPROC = 5
PROCPOOL_MAX_NPROC = 20
# after sending a command, this is the maximum time in seconds the process
# may run without returning. After this time the process will be killed
PROCPOOL_TIMEOUT = 15
# may run without returning. After this time the process will be killed. This
# can be seen as a fallback; the run_async method takes a keyword proc_timeout
# that will override this value on a per-case basis.
PROCPOOL_TIMEOUT = 10
# maximum time (seconds) a process may idle before being pruned from pool (if pool bigger than minsize)
PROCPOOL_IDLETIME = 20
# only change if the port clashes with something else on the system
PROCPOOL_HOST = 'localhost'
PROCPOOL_PORT = 5001
# 0.0.0.0 means listening to all interfaces
PROCPOOL_INTERFACE = '0.0.0.0'
@ -96,6 +97,7 @@ def start_plugin_services(server):
max=PROCPOOL_MAX_NPROC,
recycleAfter=500,
timeout=PROCPOOL_TIMEOUT,
maxIdle=PROCPOOL_IDLETIME,
ampChild=PythonProcPoolChild,
starter=procpool_starter)
procpool_service = ampoule_service.AMPouleService(procpool,

View file

@ -1,5 +0,0 @@
#
# Python Async runner - server-side AMP access function
#