我在我的应用程序中配置了django-celery。这是我的任务:
from celery.decorators import task
import simplejson as json
import requests
@task
def call_api(sid):
try:
results = requests.put(
'http://localhost:8000/api/v1/sids/'+str(sid)+"/",
data={'active': '1'}
)
json_response = json.loads(results.text)
except Exception, e:
print e
logger.info('Finished call_api')
当我添加我的观点时:
call_api.apply_async(
(instance.service.id,),
eta=instance.date
)
celeryd告诉我:
Got task from broker: my_app.tasks.call_api[755d50fd-0f0f-4861-9a18-7f4e4563290a]
Task my_app.tasks.call_api[755d50fd-0f0f-4861-9a18-7f4e4563290a] succeeded in 0.00513911247253s: None
所以应该是好的,但没有任何事情发生......例如,没有电话:
http://localhost:8000/api/v1/sids/1/
我做错了什么?
答案 0 :(得分:0)
您是否将芹菜作为一个单独的过程运行? 例如在Ubuntu中使用该命令运行 sudo python manage.py celeryd
直到您将celery(或django芹菜)作为一个单独的进程运行,作业将存储在数据库中(或队列或您配置的持久性机制 - 通常在settings.py中)。