我是 node-celery 的新手,我试图通过从 celery 任务中获取结果来开始简单。我已经以“等待”的方式编写了我的 JS,以便等待 celery 的结果然后继续前进,但是,似乎 JS 从来没有从“client.call('task')”得到结果
芹菜代码:
@app.task(base=QueueOnce)
def add(x, y):
return x + y
节点 JS 代码:
async function addCelery() {
client = celery.createClient({
CELERY_BROKER_URL: "redis://myurl.com:0000"
});
let clientResult = new Promise((resolve, reject) => {
console.log("Log 1"); //This shows in the console
client.on('connect', () => {
console.log("Log 2"); //This also shows in console, making me believe it connected successfully
var call = client.call('tasks.add', [1,2]); //Call task
console.log("Log 3"); //This also shows in console, making me believe the task call is called successfully
call.on('ready', function(result){ //When call gets result
console.log(result); //Never gets here
});
});
})
await clientResult;
console.log('done'); //Never gets here
我不确定为什么它永远不会超过从未从通话中得到结果的原因。我有很多用于调试的 console.log() 让我相信它已成功连接和调用任务
它没有连接到芹菜吗?我把任务叫错了吗?这不应该是一个时间问题,因为我已经执行了这个并且等待了 10 分钟仍然没有结果。我对此很陌生,所以任何帮助将不胜感激