Перейти к содержанию

Начинаем работу с QTasks

Как за пару минут настроить и запустить первую задачу с помощью QueueTasks

1. Создание экземпляра приложения

from qtasks import QueueTasks
# или для асинхронного варианта:
# from qtasks.asyncio import QueueTasks

app = QueueTasks()

Info

По умолчанию в качестве брокера и хранилища используется Redis по адресу redis://localhost:6379/0.

2. Регистрация задач

Задачи регистрируются через декоратор @app.task.

@app.task(name="mytest") # Обычная задача 
def mytest(text: str):
    print(text)
    return text

@app.task(name="error_zero") # Задача с ошибкой
def error_zero():
    result = 1/0
    return

Info

Если имя задачи уже не указано, будет использовано имя функции

Tip

Имя задачи может быть любым, но должно быть уникальным в пределах приложения. Если задача с таким именем уже существует, будет вызвано исключение

3. Запускаем QueueTasks

if __name__ == "__main__":
    app.run_forever()

4. Полный пример

# file: app.py
from qtasks import QueueTasks


app = QueueTasks()


@app.task(name="mytest") # Пример обычной задачи
def mytest(text: str):
    print(text)
    return text


@app.task(name="error_zero") # Пример задачи с ошибкой
def error_zero():
    result = 1/0
    return


if __name__ == "__main__":
    app.run_forever()

5. Добавление задач в очередь

После запуска обработчика задач, можно добавлять задачи из другого файла или интерпретатора Python:

# file: add_tasks.py
from app import app, mytest

app.add_task(task_name="mytest", "Тест")
mytest.add_task("Тест")
app.add_task(task_name="error_zero")