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

View file

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

View file

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