kombu/examples/simple_task_queue/worker.py

29 lines
747 B
Python

from __future__ import with_statement
from kombu.mixins import ConsumerMixin
from kombu.utils import kwdict
from queues import task_queues
class Worker(ConsumerMixin):
def get_consumers(self, Consumer, channel):
return Consumer(queues=task_queues,
callbacks=[self.process_task])
def process_task(body, message):
fun = body["fun"]
args = body["args"]
kwargs = body["kwargs"]
fun(*args, **kwdict(kwargs))
message.ack()
if __name__ == "__main__":
from kombu import BrokerConnection
from kombu.log import setup_logging
setup_logging(loglevel="INFO")
with BrokerConnection("amqp://guest:guest@localhost:5672//") as conn:
Worker(conn).run()