Heroku 上的 Redis 没有响应
Redis on Heroku not respond
我对 Redis 排队作业任务还很陌生。我尝试使用 Redis To Go 插件在队列上执行一些功能。但是在我将一些任务推入队列后它似乎消失了。
这是我的代码
import Flask
import redis
from rq import Queue
REDIS_URL = os.getenv('REDISTOGO_URL', None)
if REDIS_URL!=None:
r = redis.from_url(REDIS_URL)
else:
r = redis.Redis()
q = Queue(connection=r)
def function(pam1):
print("Checkpoint1")
return 0
@main.route('/name', methods=['GET', 'POST'])
def displayname():
job = q.enqueue(function, pam1=0)
return job.id
有关队列的其他信息:还有作业 ID,例如 7344337b-cca0-442a-b43a-abcdc88f012c。
但在 heroku 日志中根本没有 "Checkpoint1" 的迹象。
我不确定 Heroku 的日志记录实现,但假设您正在查看错误的日志(或其他内容),您可以试试这个...
不是打印 'Checkpoint',而是增加自定义 redis 键的值:
def function(pam1):
r.incr('job_ran', 1)
return 0
然后创建一个路由,您可以在其中检查此值:
@app.route('/show_count')
def show_count():
n = r.get('job_ran')
if n is None:
n = 0
else:
n = n.decode('utf-8')
return f'Job has run {n} times'
现在排队一些作业,并检查 /show_count
路由以确保它已相应增加。
感谢@v25。 Redis 没有响应的真正原因是因为我没有 WORKER。得到周四 see the Heroku guide on launching a worker 现在我的问题解决了。
我对 Redis 排队作业任务还很陌生。我尝试使用 Redis To Go 插件在队列上执行一些功能。但是在我将一些任务推入队列后它似乎消失了。
这是我的代码
import Flask
import redis
from rq import Queue
REDIS_URL = os.getenv('REDISTOGO_URL', None)
if REDIS_URL!=None:
r = redis.from_url(REDIS_URL)
else:
r = redis.Redis()
q = Queue(connection=r)
def function(pam1):
print("Checkpoint1")
return 0
@main.route('/name', methods=['GET', 'POST'])
def displayname():
job = q.enqueue(function, pam1=0)
return job.id
有关队列的其他信息:还有作业 ID,例如 7344337b-cca0-442a-b43a-abcdc88f012c。
但在 heroku 日志中根本没有 "Checkpoint1" 的迹象。
我不确定 Heroku 的日志记录实现,但假设您正在查看错误的日志(或其他内容),您可以试试这个...
不是打印 'Checkpoint',而是增加自定义 redis 键的值:
def function(pam1):
r.incr('job_ran', 1)
return 0
然后创建一个路由,您可以在其中检查此值:
@app.route('/show_count')
def show_count():
n = r.get('job_ran')
if n is None:
n = 0
else:
n = n.decode('utf-8')
return f'Job has run {n} times'
现在排队一些作业,并检查 /show_count
路由以确保它已相应增加。
感谢@v25。 Redis 没有响应的真正原因是因为我没有 WORKER。得到周四 see the Heroku guide on launching a worker 现在我的问题解决了。