Esempio n. 1
0
    def submit(self, fn, args=None, kwargs=None):
        ft = WMFuture()
        log.debug('dispatching {!r}'.format(fn))

        self.pending[ft.task_id] = ft
        self.task_queue.put(('task', ft.task_id, fn, args or (), kwargs or {}))
        return ft
Esempio n. 2
0
 def _make_append_task(self, fn, args, kwargs):
     ft = WMFuture()
     task_id = ft.task_id
     task = Task(task_id, fn, args, kwargs)
     self.pending_futures[task_id] = ft
     self.task_queue.append(task)
     return ft
Esempio n. 3
0
 def submit(self, fn, args=None, kwargs=None):
     if self.futures is None:
         # We are shutting down
         raise ZMQWMEnvironmentError('work manager is shutting down')
     future = WMFuture()
     task = Task(fn, args or (), kwargs or {}, task_id = future.task_id)
     self.futures[task.task_id] = future
     self.outgoing_tasks.append(task)
     # Wake up the communications loop (if necessary) to announce new tasks
     self.send_inproc_message(Message.TASKS_AVAILABLE)
     return future
Esempio n. 4
0
 def submit(self, fn, args=None, kwargs=None):
     ft = WMFuture()
     try:
         result = fn(*(args if args is not None else ()), **(kwargs if kwargs is not None else {}))
     except Exception as e:
         ft._set_exception(e, sys.exc_info()[2])
     else:
         ft._set_result(result)
     return ft