使用芹菜运行管理命令



我以前从未使用过芹菜,并试图正确配置它。我将Redis用作经纪人,并在Heroku上托管。这是我第一次试图执行异步任务,而我正在挣扎。我有一个我想定期运行的管理命令。

芹菜.py

from __future__ import absolute_import, unicode_literals
import os 
import celery
from celery import Celery
import django
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'coffee.settings')
app = Celery('coffee')
app.config_from_object('django.conf:settings', namespace = 'CELERY')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind= True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))
app.conf.beat_schedule = {
    'add-every-30-seconds':{
        'task': 'inventory.tasks.boarshead',
        'schedule' : 30.0,
        'args' : ()
    },
}

settings.py


CACHES = {
    "default": {
         "BACKEND": "redis_cache.RedisCache",
         "LOCATION": os.environ.get('REDIS_URL'),
    }
}

tasks.py

from celery import shared_task
import celery
import time
from django.core import management
@celery.task
def boarshead():
    try:
        print("in celery module")
        """Boarshead expired sessions by using Django Management Command."""
        management.call_command("clearsessions", verbosity=0)
        CreateBoarsHeadList.py
        return "success"
    except:
        print(e)

init .py

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

procfile

worker: celery worker --app=tasks.inventory.app

在芹菜 兔子上(和redis,多年来不用用作后端(,您将需要一个" web"(django(的proc文件,而一个工人则没有看到列出。Worker/Dyno分配允许使用和访问管理功能。这是我的一个应用程序中的procfile:

web: gunicorn SOME_APP.wsgi --log-file - worker: celery worker -A QUEUE_APP_NAME -l info --without-gossip --without-mingle --without-heartbeat

QUEUE_APP_NAME是我所有芹菜工作和代码的模块(应用程序(的名称。workerQUEUE_APP_NAME模块(DIR(中通过procfile调用,与芹菜文件相似。可能无法解决您,但是让芹菜工作是一场缓慢的战斗。

相关内容

  • 没有找到相关文章