heroku上的redis没有回应

ulmd4ohb  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(453)

我对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-dc88f012c。
但heroku日志上根本没有“checkpoint1”的迹象。

fruv7luv

fruv7luv1#

感谢@v25。redis没有回应的真正原因是我没有工人。在得到thu后,看看heroku指南,现在我的问题解决了。

w46czmvw

w46czmvw2#

我不确定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 路由以确保它相应地增加。

相关问题