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

BaseStorage - Пишем своё хранилище

Base storage class.

BaseStorage

Bases: ABC

BaseStorage - Абстрактный класс, который является фундаментом для Хранилищ.

Пример

from qtasks.storages.base import BaseStorage

class MyStorage(BaseStorage):
    def __init__(self, name: str = None):
        super().__init__(name=name)
        pass

__init__(name=None, global_config=None, log=None, config=None)

Инициализация базового хранилища.

Parameters:

Name Type Description Default
name str

Имя проекта. По умолчанию: None.

None
global_config BaseGlobalConfig

Глобальный конфиг. По умолчанию: None.

None
log Logger

Логгер. По умолчанию: qtasks.logs.Logger.

None
config QueueConfig

Конфиг. По умолчанию: qtasks.configs.config.QueueConfig.

None

add(uuid, task_status) abstractmethod

Добавление задачи в хранилище.

Parameters:

Name Type Description Default
uuid UUID | str

UUID задачи.

required
task_status TaskStatusNewSchema

Схема статуса новой задачи.

required

add_plugin(plugin, trigger_names=None)

Добавить плагин в класс.

Parameters:

Name Type Description Default
plugin BasePlugin

Плагин

required
trigger_names List[str]

Имя триггеров для плагина. По умолчанию: будет добавлен в Globals.

None

flush_all()

Удалить все данные.

get(uuid) abstractmethod

Получение информации о задаче.

Parameters:

Name Type Description Default
uuid UUID | str

UUID задачи.

required

Returns:

Type Description
Task | None

Task|None: Если есть информация о задаче, возвращает schemas.task.Task, иначе None.

get_all() abstractmethod

Получить все задачи.

Returns:

Type Description
list[Task]

list[Task]: Массив задач.

init_plugins()

Инициализация плагинов.

remove_finished_task(task_broker, model)

Обновляет данные хранилища через функцию self.storage.remove_finished_task.

Parameters:

Name Type Description Default
task_broker TaskPrioritySchema

Схема приоритетной задачи.

required
model TaskStatusNewSchema | TaskStatusErrorSchema

Модель результата задачи.

required

start() abstractmethod

Запускает хранилище. Эта функция задействуется основным экземпляром QueueTasks после запуске функции run_forever.

stop() abstractmethod

Останавливает хранилище. Эта функция задействуется основным экземпляром QueueTasks после завершения функции run_forever.

update(**kwargs) abstractmethod

Обновляет информацию о задаче.

Parameters:

Name Type Description Default
kwargs dict

данные задачи типа kwargs.

{}

update_config(config)

Обновляет конфиг брокера.

Parameters:

Name Type Description Default
config QueueConfig

Конфиг.

required