2

アプリケーションで 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
            )

セロリは私に示しています:

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/

私は何を間違っていますか?

4

1 に答える 1

0

セロリを別のプロセスとして実行していますか? たとえば、Ubuntu では、コマンド sudo python manage.py celerydを使用して実行します

celery (または django celery) を別のプロセスとして実行するまで、ジョブはデータベース (または構成したキューまたは永続メカニズム - 通常は settings.py 内) に保存されます。

于 2013-06-20T14:36:15.897 に答える