Şu anda özel tüketicileri kereviz işçilerine eklemek zordur, ancak bu, Tüketici önyükleme adımları için destek eklediğim geliştirme sürümünde (3.1 haline gelmek) değişmektedir.
Orada ben sadece bunu uygulamak bitirdikten olarak hiçbir belge henüz, ama burada bir örnek: API, son sürümde henüz emin değilim bir şey değişebileceğini
from celery import Celery
from celery.bin import Option
from celery.bootsteps import ConsumerStep
from kombu import Consumer, Exchange, Queue
class CustomConsumer(ConsumerStep):
queue = Queue('custom', Exchange('custom'), routing_key='custom')
def __init__(self, c, enable_custom_consumer=False, **kwargs):
self.enable = self.enable_custom_consumer
def get_consumers(self, connection):
return [
Consumer(connection.channel(),
queues=[self.queue],
callbacks=[self.on_message]),
]
def on_message(self, body, message):
print('GOT MESSAGE: %r' % (body,))
message.ack()
celery = Celery(broker='amqp://localhost//')
celery.steps['consumer'].add(CustomConsumer)
celery.user_options['worker'].add(
Option('--enable-custom-consumer', action='store_true',
help='Enable our custom consumer.'),
)
Not Kanallar get_consumer(connection)
'dan sonra nasıl ele alınır. Şu anda tüketicinin kanalı bağlantı koptuğunda kapanıyor ve kapatma sırasında, ancak kullanıcılar kanalları manuel olarak işlemek isteyebilir. Bu durumda, ConsumerStep'i özelleştirmenin veya yeni bir StartStopStep yazmanın her zaman olasılığı vardır.
Dokümantasyon şu anda http://celery.readthedocs.org/en/latest/userguide/extending.html adresinde bulunabilir. –