@@ -47,7 +47,7 @@ class Tasker(object):
4747
4848 def __init__ (self , tasks = (), max_tasks = 4 , task_timeout = None ,
4949 task_queue = None , result_queue = None , command_queue = None ,
50- run_until = None , logger = 'reusables' ):
50+ run_until = None , logger = 'reusables' , ** task_kwargs ):
5151 if logger :
5252 self .log = logging .getLogger ('reusables' )
5353 self .task_queue = task_queue or mp .Queue ()
@@ -66,6 +66,7 @@ def __init__(self, tasks=(), max_tasks=4, task_timeout=None,
6666 self .run_until = run_until
6767 self ._pause , self ._end = mp .Value ('b' , False ), mp .Value ('b' , False )
6868 self .background_process = None
69+ self .task_kwargs = task_kwargs
6970
7071 def get (self , timeout = None ):
7172 """Retrieve next result from the queue"""
@@ -76,7 +77,7 @@ def put(self, task):
7677 return self .task_queue .put (task )
7778
7879 @staticmethod
79- def perform_task (task , result_queue ):
80+ def perform_task (task , result_queue , ** kwargs ):
8081 """Function to be overwritten that performs the tasks from the list"""
8182 raise NotImplementedError ()
8283
@@ -113,7 +114,8 @@ def _return_task(self, task_id):
113114
114115 def _start_task (self , task_id , task ):
115116 self .current_tasks [task_id ]['proc' ] = mp .Process (
116- target = self .perform_task , args = (task , self .result_queue ))
117+ target = self .perform_task , args = (task , self .result_queue ),
118+ kwargs = self .task_kwargs )
117119 self .current_tasks [task_id ]['start_time' ] = time .time ()
118120 self .current_tasks [task_id ]['proc' ].start ()
119121
0 commit comments