私はHerokuでデプロイしたDjangoアプリケーションを持っています。私は毎分定期的な作業を作成するためにセロリを利用しようとしています。しかし、私は次のコマンドを使用して、労働者のためのログを観察するとき:Django Celery Periodic Taskが実行されていません(Heroku)?
heroku logs -t -p worker
を私は自分のタスクが実行されて表示されません。おそらく私は行方不明ですか?これは
Procfile
web: gunicorn activiist.wsgi --log-file -
worker: celery worker --app=trending.tasks.app
...
import celery
app = celery.Celery('activiist')
import os
from celery.schedules import crontab
from celery.task import periodic_task
from django.conf import settings
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
app.conf.update(BROKER_URL=os.environ['REDIS_URL'],
CELERY_RESULT_BACKEND=os.environ['REDIS_URL'])
os.environ['DJANGO_SETTINGS_MODULE'] = 'activiist.settings'
from trending.views import *
@periodic_task(run_every=crontab())
def add():
getarticles(30)
追加するための一つのことTasks.py
以下の私の構成です。 Pythonシェルと "delay()"コマンドを使用してタスクを実行すると、タスクは実際に実行されます(ログに表示されます)。ただし、実行されるのは一度だけです。