Source code for thriftworker.workers.sync

from __future__ import absolute_import

import sys
import logging

from thriftworker.workers.base import BaseWorker

logger = logging.getLogger(__name__)


[docs]class Promise(object): """Used to enqueue task execution in thread pool.""" __slots__ = ('func', 'callback', 'result', 'exception') def __init__(self, func, callback): self.func = func self.callback = callback self.result = None self.exception = None def __call__(self): try: self.result = self.func() except: self.exception = sys.exc_info()
[docs] def cb(self, *args): self.callback(self.result, self.exception)
[docs]class SyncWorker(BaseWorker): """Process all request in separate thread."""
[docs] def create_consumer(self): loop = self.loop def inner_consumer(task, callback): """Nested function that process incoming request.""" promise = Promise(task, callback) loop.queue_work(promise, promise.cb) return inner_consumer
Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.