Heroku上的Redis没有回应



我对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 eg.7344337b-cca0-442a-b43a-abcdc88f012c。

但heroku日志上根本没有"Checkpoint1"的迹象。

我不确定Heroku的日志实现,但假设你看到的日志(或其他什么(不对,你可以试试这个。。。

不打印"检查点",而是增加自定义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。在看到Heroku关于启动工人的指南后,现在我的问题解决了。

相关内容

  • 没有找到相关文章

最新更新