我想用java nio编写的comet服务器发送实时更新。当我收到我希望它扫描数据的信息,并通过rabbitmq将任务发送给工作线程时。理想情况下,我希望芹菜服务器坐在兔子的另一端,管理一组工作线程来处理这些任务。芹菜工作者/服务器可以接受来自非芹菜生产者的任务吗?
不过,从我的理解,芹菜作品坐在RabbitMQ的两端,它主要是通过嵌入消费者和生产者的代码都接管生产和消费的作用。如上所述,有没有办法设置芹菜?谢谢
我想用java nio编写的comet服务器发送实时更新。当我收到我希望它扫描数据的信息,并通过rabbitmq将任务发送给工作线程时。理想情况下,我希望芹菜服务器坐在兔子的另一端,管理一组工作线程来处理这些任务。芹菜工作者/服务器可以接受来自非芹菜生产者的任务吗?
不过,从我的理解,芹菜作品坐在RabbitMQ的两端,它主要是通过嵌入消费者和生产者的代码都接管生产和消费的作用。如上所述,有没有办法设置芹菜?谢谢
是的!
您可以将Custom Message Consumers
添加到芹菜应用程序中。
芹菜文档请参考Extensions and Bootsteps。
下面是示例代码在上面的链接的一部分:
from celery import Celery
from celery import bootsteps
from kombu import Consumer, Exchange, Queue
my_queue = Queue('custom', Exchange('custom'), 'routing_key')
app = Celery(broker='amqp://')
class MyConsumerStep(bootsteps.ConsumerStep):
def get_consumers(self, channel):
return [Consumer(channel,
queues=[my_queue],
callbacks=[self.handle_message],
accept=['json'])]
def handle_message(self, body, message):
print('Received message: {0!r}'.format(body))
message.ack()
app.steps['consumer'].add(MyConsumerStep)
测试它:
蟒-m芹菜-A主工人
谢谢你的回答。 – Jaigus 2016-01-24 00:13:27