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

BaseWorker - Пишем свой воркер

Base worker class.

BaseWorker

Bases: ABC

BaseWorker - Абстрактный класс, который является фундаментом для Воркеров.

Example

from qtasks import QueueTasks
from qtasks.workers.base import BaseWorker

class MyWorker(BaseWorker):
    def __init__(self, name: str = None, broker: BaseBroker = None):
        super().__init__(name=name, broker=broker)
        pass

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

Инициализация базового воркера.

Parameters:

Name Type Description Default
name str

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

None
broker BaseBroker

Брокер. По умолчанию: None.

None
log Logger

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

None
config QueueConfig

Конфиг. По умолчанию: None.

None

add(name, uuid, priority, created_at, args, kwargs) abstractmethod

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

Parameters:

Name Type Description Default
name str

Имя задачи.

required
uuid UUID

UUID задачи.

required
priority int

Приоритет задачи.

required
created_at float

Создание задачи в формате timestamp.

required
args tuple

Аргументы задачи типа args.

required
kwargs dict

Аргументы задачи типа kwargs.

required

add_plugin(plugin, trigger_names=None)

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

Parameters:

Name Type Description Default
plugin BasePlugin

Плагин

required
trigger_names List[str]

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

None

init_plugins()

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

start(num_workers=None) abstractmethod

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

Parameters:

Name Type Description Default
num_workers int

Количество воркеров. По умолчанию: 4.

None

stop() abstractmethod

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

update_config(config)

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

Parameters:

Name Type Description Default
config QueueConfig

Конфиг.

required