Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Heroku上使用Flask应用程序运行RQScheduler_Python_Heroku_Flask_Redis_Redistogo - Fatal编程技术网

Python 在Heroku上使用Flask应用程序运行RQScheduler

Python 在Heroku上使用Flask应用程序运行RQScheduler,python,heroku,flask,redis,redistogo,Python,Heroku,Flask,Redis,Redistogo,我正在试着用RedisToGo在Heroku上运行Flask应用程序 我已经设置了一个worker.py文件,如下所示 import os import redis from rq import Worker, Queue, Connection listen = ['high', 'default', 'low'] redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379') conn = redis.from_u

我正在试着用RedisToGo在Heroku上运行Flask应用程序

我已经设置了一个worker.py文件,如下所示

import os   
import redis
from rq import Worker, Queue, Connection

listen = ['high', 'default', 'low']

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

conn = redis.from_url(redis_url)

if __name__ == '__main__':
    with Connection(conn):
        worker = Worker(map(Queue, listen))
        worker.work()
我的应用程序将工作与

from redis import Redis
from rq_scheduler import Scheduler

@app.route('/products/create', methods=['POST'])
def product_create_sort():

   scheduler = Scheduler(connection=Redis())
   scheduler.enqueue_in(timedelta(minutes=5), sort_collection, queue_data)

   return Response(status=200)
我在本地工作得非常好,但是在Heroku上我得到以下错误

redis.exceptions.ConnectionError: Error 111 connecting to localhost:6379. Connection refused. 
我猜问题是因为我的proc文件。我不知道是
rqscheduler
实际运行正常,还是RedisToGo正在运行redis服务器,而rqscheduler没有正确连接到它

scheduler: rqscheduler
worker: python worker.py 
web: python app.py

所以rqscheduler在使用localhost时,redistogo实际上不在localhost上

所以我更新了app.py

scheduler = Scheduler(connection=Redis(host=<host>, port=<port>, db=0, password=<pass>))
scheduler=scheduler(连接=Redis(主机=,端口=,数据库=0,密码=))
以及带有

scheduler: rqscheduler --host <host> --port <port> --password <pass>
调度程序:rqscheduler--主机--端口--密码
现在它开始工作了。我需要做的就是弄清楚如何将env变量添加到proc文件中