2017-10-11 1 views
0

CELERY_ALWAYS_EAGER=False私のページを読み込むと、私のウサギはメッセージを受け取りますが、消費することはありません。 CELERY_ALWAYS_EAGER = Trueの場合、私の仕事は消費されますが、私のページはいつも仕事を終えるのを待っているのでロードされており、こうしてherokuにtimeoutが作成され、エラーが発生します。 ここでサークルに参加します。セロリの全目的は非同期ですが、なぜこれをしますか?他の設定がありませんか?セロリはいつも熱心に実行していますが、タスクは非同期です

BROKER_URL=['amqp://[email protected]//','amqp://[email protected]/ysicvcrh'] 
BROKER_POOL_LIMIT = 1 
BROKER_CONNECTION_MAX_RETRIES = None 
BROKER_CONNECTION_TIMEOUT = 30 
EVENT_QUEUE_EXPIRES = 60 
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' 
CELERY_ACCEPT_CONTENT = ['pickle','json'] 
CELERY_TASK_SERIALIZER = 'json' 
CELERY_RESULT_SERIALIZER = 'json' 
#CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend' # AMQP is not recommended as result backend as it creates thousands of queues 
CELERY_ALWAYS_EAGER = False 

task.py

from __future__ import absolute_import, unicode_literals 
import requests 
import json 
import time 
import sys 
import os 
import random 
from os import path 
from celery import Celery 
sys.path.append(path.dirname(path.dirname(path.abspath(__file__)))) 
from lib import myfiles 
from django.db import models 
from .models import mymodels 
import django 
django.setup() 

@task(name="get_myfunction") 
def get_data(user, items): 
    #runs a bunch of things 
    #saves data 
    #all this and page spinner on the browser tab just keeps spinning until its done 

celery_settings.py

from __future__ import absolute_import 
import os 
from celery import Celery 
from django.conf import settings 

# set the default Django settings module for the 'celery' program. 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings') 
app = Celery('app', broker=['amqp://[email protected]//','amqp://hello:[email protected]/ysicvcrh']) 
app.config_from_object('django.conf:settings') 
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) 

@app.task(bind=True) 
def debug_task(self): 
    print('Request: {0!r}'.format(self.request)) 
+0

作業を実行するには、作業者を実行する必要があります。ドキュメントhttp://docs.celeryproject.org/en/latest/userguide/workers.html#id1を参照してください。 – Jinje

答えて

0

私は別のボード上の誰かに尋ねました。それは私がherokuのdynosを有効にしていないことが判明しました

関連する問題