redis-server.exe:无法在heroku中执行二进制文件

cuxqih21  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(774)

我正试图在heroku上用redis部署我的django应用程序,但是没有成功,日志中出现了错误。
我在这里安装了redis for windows。
这是我的 Procfile :

web: gunicorn mysite.wsgi --log-file -
worker: bash Redis/redis-server.exe

我的日志:

2020-12-04T01:56:26.263759+00:00 app[worker.1]: Redis/redis-server.exe: Redis/redis-server.exe: cannot execute binary file
2020-12-04T01:56:26.346545+00:00 heroku[worker.1]: Process exited with status 126
2020-12-04T01:56:26.735800+00:00 heroku[worker.1]: State changed from up to crashed

heroku版本

heroku/7.47.3 win32-x64 node-v12.16.2

我用的是windows,我很确定我的系统类型是64位操作系统。我的应用程序怎么了?我怎样才能解决这个问题?

9jyewag0

9jyewag01#

我用的是windows,我很确定我的系统类型是64位操作系统
你可能是,但希罗库不是。
heroku堆栈基于UbuntuLinux或docker。你将无法在heroku上运行windows二进制文件。
基于你的 Procfile ,看起来您正在尝试运行redis服务器:

worker: bash Redis/redis-server.exe

这与heroku的建筑格格不入。相反,请使用适当的附加组件。目前至少有五种官方支持的方案:
我要走了
redis云
openredis公司
再绿
赫罗库·雷迪斯
看看他们的产品,挑选一个,并提供它。至少其中有些是免费的。
您可以在相应的文档中找到有关连接的说明,但通常每个插件都会设置一个config var,它实际上只是一个环境变量。例如,redis to go集合 REDISTOGO_URL ,您可以从应用程序代码访问它,如下所示:

import os
import redis

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')
redis = redis.from_url(redis_url)

相关问题