在heroku上部署我的網站后,我收到以下錯誤。
Error 111 connecting to 127.0.0.1:6379. Connection refused.
Request Method: POST
Request URL: https://website.herokuapp.com/account/register
Django Version: 3.2.8
Exception Type: OperationalError
Exception Value:
Error 111 connecting to 127.0.0.1:6379. Connection refused.
Exception Location: /app/.heroku/python/lib/python3.8/site-packages/kombu/connection.py, line 451, in _reraise_as_library_errors
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.8.12
Python Path:
['/app',
'/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python38.zip',
'/app/.heroku/python/lib/python3.8',
'/app/.heroku/python/lib/python3.8/lib-dynload',
'/app/.heroku/python/lib/python3.8/site-packages']
Server time: Sat, 11 Dec 2021 21:17:12 0530
所以基本上我的網站必須在注冊后發送關于 otp 的電子郵件以及一些與合同相關的電子郵件。這些電子郵件是必須發送的,因此無法避免。我早些時候在這里發布了一個問題,關于如何最大限度地減少發送電子郵件所花費的時間,以便用戶不必等待整個時間。有人建議我為此使用異步代碼。所以我決定用芹菜來做這個。我關注了教如何使用它的 youtube 視頻。
現在,在我將代碼推送到網站后,出現此錯誤。我是初學者,不知道如何糾正它。請建議我該怎么做。下面是詳細資訊和配置。
設定.py
CELERY_BROKER_URL = 'redis://127.0.0.1:6379'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379'
CELERY_ACCEPT_CONTENT =['application/json']
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SELERLIZER = 'json'
要求.txt
amqp==5.0.6
asgiref==3.4.1
billiard==3.6.4.0
celery==5.2.1
click==8.0.3
click-didyoumean==0.3.0
click-plugins==1.1.1
click-repl==0.2.0
colorama==0.4.4
Deprecated==1.2.13
dj-database-url==0.5.0
Django==3.2.8
django-ckeditor==6.1.0
django-filter==21.1
django-js-asset==1.2.2
django-multiselectfield==0.1.12
dnspython==2.1.0
正如我所提到的,我是初學者,請向我提供有關如何糾正此錯誤的詳細答案。
uj5u.com熱心網友回復:
這是問題所在:
CELERY_BROKER_URL = 'redis://127.0.0.1:6379'
Redis 不會在您的本地 dyno 上運行。您必須在其他地方運行它并配置您的代碼以連接到它。一個常見的選擇是通過插件運行 Redis:
選擇代理后,創建您的 Heroku 應用程式并將附加組件附加到它。在示例中,我們將使用Heroku Redis作為 Redis 提供程式,但Heroku Elements Marketplace 中還有許多其他Redis 提供程式。
如果您選擇使用 Heroku Redis,您將能夠通過REDIS_URL環境變數獲取到您的實體的連接字串:
Heroku 附加組件為您的應用程式提供可以傳遞給您的 Celery 應用程式的環境變數。例如:
import os app.conf.update(BROKER_URL=os.environ['REDIS_URL'], CELERY_RESULT_BACKEND=os.environ['REDIS_URL'])您的 Celery 應用程式現在知道將您選擇的代理和結果存盤用于您在其中定義的所有任務。
其他插件將提供類似的配置機制。
此處參考的所有檔案和大多數鏈接均來自 Heroku 的Using Celery on Heroku文章。我建議您閱讀整個檔案以獲取更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/380320.html
標籤:姜戈 英雄联盟 Redis django-芹菜 django-redis
