3
我有一个Java客户端,与芹菜使用RabbitMQ的通信,并将任务芹菜服务器添加2号X和ÿ芹菜来管理Java任务
String QUEUE_NAME = "celery";
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
String x = "5";
String y = "10";
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
String ID = UUID.randomUUID().toString();
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
String message = "{\"id\":\""+ID+"\", \"task\": \"tasks.add\", \"args\": ["+x+","+y+"], \"kwargs\": {}, \"retries\": 0, \"eta\": \"2009-11-17T12:30:56.527191\"}";
channel.basicPublish("", QUEUE_NAME, new AMQP.BasicProperties.Builder()
.contentType("application/json").contentEncoding("utf-8")
.build(), message.getBytes("utf-8"));
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
我们有一个Python API插件添加这些数量,并由芹菜管理。
from celery import Celery
app = Celery('tasks', broker='amqp://[email protected]//')
@app.task
def add(x, y):
return x + y
我想用Java编写这add(x,y)
功能芹菜莫名其妙地识别一个java add(x,y) method
和管理。
注:我正在寻找一个没有webhooks的解决方案。
在此先感谢。
如何如何使用[celery.execute.delay_tas(HTTP://docs.celeryproject .ORG/EN/2.1-存档/参考/ celery.execute.html#celery.execute.delay_task)。使用这个你可以使用任务名称调用任务 –
芹菜怎么知道这个任务的名字是用于这个java函数的?这是原始问题 – Rupesh
所以你想有一些java代码发送任务给rabbitmq,并且你希望芹菜能够将任务标识为正在用java编写一个运行适当的java代码? – scytale