Py学习  »  Django

Django模型在使用芹菜更新和部署到Heroku时未保存到数据库

CSStudent19583 • 3 年前 • 1337 次点击  

所以这个标题有点冗长,但我认为它很好地解释了我的问题。

我有一个Django项目,通过使用芹菜和RabbitMQ从另一个网站抓取货币数据,每60秒更新一次模型。当我在本地运行芹菜工人时,它工作得非常好,但是当我部署到Heroku时,模型不会更新。

当我查看日志时( heroku原木——尾巴 )它显示任务正在运行,但它们没有更新数据库模型。我相信这一定是因为我的设置中出现了一些配置错误。py文件,但我尝试了许多解决方案,但都没有效果。我也尝试改用Redis,但也遇到了同样的问题(它在日志中运行良好,但实际上并不更新数据库)。

以下是我认为可能导致问题的相关代码。

设置。py(使用rabbitMQ时):

CELERY_BROKER_URL = 'rabbitMQ_url_given_from_heroku'
BROKER_URL = os.environ.get("CELERY_BROKER_URL", "django://")
BROKER_POOL_LIMIT = 1
BROKER_CONNECTION_MAX_RETRIES = None

CELERY_TASK_SERIALIZER = "json"
CELERY_ACCEPT_CONTENT = ["json", "msgpack"]

设置。py(使用Redis时):

CELERY_BROKER_URL = 'Redis_url_given_from_heroku'
CELERRY_RESULT_BACKEND = 'django-db'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'UTC'

芹菜。py

import os
from celery import Celery

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

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

程序文件

web: gunicorn cryptoApi.wsgi --log-file -
worker: celery -A cryptoApi worker -l info

任何意见都将不胜感激

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128364
 
1337 次点击  
文章 [ 1 ]  |  最新文章 3 年前