Django芹菜打任务不起作用

2024-10-03 23:27:37 发布

您现在位置:Python中文网/ 问答频道 /正文

芹菜.py

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

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TwitterApiProxy.settings')

app = Celery('TwitterApiProxy')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)


@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    # Calls test('hello') every 10 seconds.
    sender.add_periodic_task(10.0, hello_test.s('hello'), name='add every 10')


@app.task
def hello_test(arg):
    print(arg)

设置.py

^{pr2}$

我想每10秒打印一次“你好”。因此,在我的终端中运行celery -A TwitterApiProxy beat,我看到了以下内容:

LocalTime -> 2018-04-06 23:27:09
Configuration ->
    . broker -> redis://localhost:6379//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%WARNING
    . maxinterval -> 5.00 minutes (300s)

它没有打印任何与我计划的任务相关的内容。我哪里出错了?在


Tags: djangofrompytestimportapphellosettings
1条回答
网友
1楼 · 发布于 2024-10-03 23:27:37

你的设置没有问题。在

在两个单独的cmd窗口中启动您的工人和芹菜

celery -A TwitterApiProxy worker -l info
celery -A TwitterApiProxy beat -l info

如果您使用的是Celery 4.0+,则必须先安装eventlet,然后按如下方式启动您的worker:

^{pr2}$

任务管理后端

如果需要任务管理后端,可以安装并使用django-celery

相关问题 更多 >