【发布时间】:2017-08-07 11:34:50
【问题描述】:
我正在使用 node-celery github link 来实现 celery celery first step 和 rabbitmq。
就像在 celery 中一样,我们定义任务然后推送它们。
我在 tasks.py 中定义的任务如下:
import os
import logging
from celery import Celery
import requests
backend = os.getenv('CELERY_BACKEND_URL', 'amqp')
celery = Celery('tasks', backend=backend)
celery.conf.update(
CELERY_RESULT_SERIALIZER='json',
CELERY_ENABLE_UTC=True
)
@celery.task
def getOrders():
requests.get('locahost:4000/getOrders')
我为触发任务而运行的文件:
eta.js:
var celery = require('../celery'),
client = celery.createClient({
CELERY_BROKER_URL: 'amqp://guest:guest@localhost:5672//'
});
client.on('error', function(err) {
console.log(err);
});
client.on('connect', function() {
client.call('tasks.getOrders', {
eta: new Date(Date.now() + 15 * 1000) // an hour later
});
});
我使用以下命令启动 celery worker:
celery worker -A tasks -l info
现在,当我运行 eta.js 并且我在 tasks.py 中定义的任务“getOrders”获得触发器并且它进一步点击我请求的 url 并且该 URL 起作用。
要运行 eta.js,我运行:
node eta.js
我想要的是我的任务“getOrders”在每 x 秒后继续运行。 我已经阅读了关于在 celery periodic tasks celery 中设置周期性任务的信息,但它在 python 中,我在 node-celery 中需要它。
如果可能的话,我想在 node-celery 中使用 celery beat,还是应该避免使用 node celery?并使用 celery python setup,我知道 python 但找不到任何在 python 中设置 celery 的链接。
任何对芹菜有很好了解的人都可以帮助我或指导我学习一些教程。
谢谢!
【问题讨论】:
-
对此的任何更新。我也需要一个类似的系统。你有没有想过如何做到这一点。
-
@shubham003,请查看以下 Emilio Camacho 的回答。
标签: rabbitmq celery celerybeat node-celery