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