@s7500

Как корректно записывать в список элементы из очереди RQ?

Я работаю с воркерами и очередью
from rq import Queue
from redis import Redis


import time



redis_conn = Redis()
queue = Queue(connection=redis_conn)

list_int = []

def worker(num, timeout):
    time.sleep(timeout)
    list_int.append(num)

    return num


проблема состоит в том, что когда воркер становится в очередь, он содержит в себе ссылку на пустой список
И если мы запускаем воркеры с периодичностью 1 сек, а им передаётся время ожидания 5 секунд, то они перезаписывают список
То есть элементы не добавляются в конец списка, а создаётся список с одним элементом
Я пока не особо понимаю, как это решить
Если у кого-то есть мысли- буду премного благодарен)

З.Ы. Забыл показать как это вообще в очередь становится

from fastapi import FastAPI
@app.get("/api/{num}/{timeout}")
def read_root(num: int, timeout: int):
    job = queue.enqueue(worker, num, timeout)
    return {"Task": "in work"}
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dmtrrr
Backend developer
А зачем использовать глобальную переменную?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
08 дек. 2021, в 10:02
3000 руб./за проект
08 дек. 2021, в 09:37
40000 руб./за проект
08 дек. 2021, в 09:35
12000 руб./за проект