Редис на Героку не отвечает - PullRequest
0 голосов
/ 28 марта 2020

Я довольно новичок в задании по очереди в Redis. Я пытался выполнить какую-то функцию в очереди, используя Redis To Go Add-on. Но после того, как я выполнил sh какое-то задание в очереди, оно, похоже, исчезло.

Вот мой код

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

Дополнительная информация об очереди: Там все еще дают идентификатор задания, например, 7344337b- cca0-442a-b43a-abcdc88f012 c.

, но никаких признаков "Checkpoint1" в журнале герою вообще.

Ответы [ 2 ]

1 голос
/ 28 марта 2020

Я не уверен насчет реализации журналирования 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, чтобы сделать уверен, что он увеличился соответственно.

0 голосов
/ 30 марта 2020

Благодаря @ v25. Настоящая причина, по которой Redis не отвечает, потому что у меня нет РАБОТНИКА. После получения см. Руководство Heroku по запуску рабочего , теперь моя проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...