芹菜的不规则行为



我是Celery的新手,我正试图用它来调度一个函数,但它似乎无法正常工作。这是我的settings.py:(以及django提供的默认设置(

CELERY_BROKER_URL = 'amqp://guest:guest@localhost'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_RESULT_BACKEND = 'db+sqlite:///results.sqlite'
CELERY_TASK_SERIALIZER = 'json'

celery.py:

rom __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from celery.schedules import crontab
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mera_project.settings')
app = Celery('mera_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

init.py:

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']

tasks_notes/tasks.py:(tasks_notes是我的应用程序名称(

from celery.decorators import periodic_task
from celery.task.schedules import crontab
from tasks_notes.models import BudgetInfo
@periodic_task(run_every=(crontab(minute='*/15')))
def monthly_starting_value():
print("hi")
return 0

views.py:

from .tasks import monthly_starting_value
def app_view(request):
abcd = monthly_starting_value.delay()
print("new"+str(abcd))

我在我的终端中有一个期望值zerohi,但我得到了一个随机数new 42bf83ef-850f-4b34-af78-da696d2ee0f2并且随机数每15分钟不断变化。在我的"芹菜节拍"运行终端选项卡中,我得到了类似以下内容:

WARNING/ForkPoolWorker-9] hi
Task tasks_notes.tasks.monthly_starting_value[42bf83ef-850f-4b34-af78-da696d2ee0f2] succeeded in 0.0009442089994990965s: 0

每15分钟。我甚至尝试过"app.beat.conf _ scheduleincelene.py",也尝试过在管理阶段运行,但效果不如预期。

我哪里错了?

非常感谢您的帮助。

它绝对不是不规则的——它的行为完全符合它应该做的。如果你想获得任务的结果,那么你应该有这样的东西:

abcd = monthly_starting_value.delay().get()

delay((返回AsyncResult类的一个实例。

最后,不要在任务内部调用print((。使用芹菜记录器。

示例:

import os
from celery.utils.log import get_task_logger
from worker import app
logger = get_task_logger(__name__)
@app.task()
def add(x, y):
result = x + y
logger.info(f'Add: {x} + {y} = {result}')
return result

相关内容

  • 没有找到相关文章

最新更新