def schedule(self, function, args=(), kwargs={}): """Schedules *function* to be run the Pool. *args* and *kwargs* will be forwareded to the scheduled function respectively as arguments and keyword arguments. A *concurrent.futures.Future* object is returned. """ self._check_pool_state() future = Future() payload = TaskPayload(function, args, kwargs) task = Task(next(self._task_counter), future, None, payload) self._context.task_queue.put(task) return future
def schedule(self, function, args=(), kwargs={}, timeout=None): """Schedules *function* to be run the Pool. *args* and *kwargs* will be forwareded to the scheduled function respectively as arguments and keyword arguments. *timeout* is an integer, if expires the task will be terminated and *Future.result()* will raise *TimeoutError*. A *pebble.ProcessFuture* object is returned. """ self._check_pool_state() future = ProcessFuture() payload = TaskPayload(function, args, kwargs) task = Task(next(self._task_counter), future, timeout, payload) self._context.task_queue.put(task) return future