gpt4 book ai didi

python - Heroku RQ(Redis 队列)Django 错误 : "Apps aren' t loaded yet.“

转载 作者:可可西里 更新时间:2023-11-01 11:23:59 30 4
gpt4 key购买 nike

我有一个功能性 Django 应用程序,在我看来它有许多 Google Text-To-Speech API 调用和数据库读/写。在本地测试时,加载页面大约需要 3 秒,但是当我将应用程序实时部署到 Heroku 时,加载网页大约需要 15 秒。所以我正在努力减少加载时间。

我看到了这篇文章:https://devcenter.heroku.com/articles/python-rq这表明我应该通过使用 RQ(Redis 队列)库将作业排队给工作人员来使用后台任务。我遵循了他们的步骤,并将他们的 worker.py 文件包含在与我的 manage.py 文件相同的目录中(不确定这是否是放置它的正确位置)。我想用一个虚拟函数在本地测试它并查看它是否可以正常运行。

# views.py
from rq import Queue
from worker import conn

def dummy(foo):
return 2

def my_view(request):
q = Queue(connection=conn)
for i in range(10):
dummy_foo = q.enqueue(dummy, "howdy")
return render(request, 'dummy.html', {})

我在不同的终端运行:

$ python worker.py
$ python manage.py runserver

但在加载网页时,我在 python worker.py 终端中收到许多 “Apps aren't loaded yet.” 错误消息。我还没有尝试部署到 Heroku,但我想知道为什么我会在本地收到此错误消息?

最佳答案

迟到总比不到好。
Django-rq 需要 Django2.0,不幸的是我们的项目没有升级到最新版本的计划。
所以如果你处于同样的情况,你仍然可以使用普通的 RQ ,你只需要在 worker.py (worker_django_1_11) 中添加以下两行:

import django
django.setup()

并像这样传递 worker 类(Class):

> DJANGO_SETTINGS_MODULE=YOURPROJECT.settings rq worker --worker-class='worker_django_1_11.Worker'

关于python - Heroku RQ(Redis 队列)Django 错误 : "Apps aren' t loaded yet.“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54009050/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com