nsj-queue-lib

raw JSON →
1.2.2 verified Mon Apr 27 auth: no python

Biblioteca para facilitar a implementação de filas e workers em Python, suportando RabbitMQ e PostgreSQL como backends. Atualmente na versão 1.2.2, requer Python >=3.4. Mantida pela Nasajon, com lançamentos esporádicos.

pip install nsj-queue-lib
error ModuleNotFoundError: No module named 'nsj_queue_lib'
cause Pacote não instalado ou nome de módulo incorreto (hífen vs underscore).
fix
Execute pip install nsj-queue-lib e use import nsj_queue_lib.
error AttributeError: module 'nsj_queue_lib' has no attribute 'QueueService'
cause Tentativa de importar usando `import nsj_queue_lib` e acessar diretamente, mas o símbolo precisa ser importado explicitamente.
fix
Use from nsj_queue_lib import QueueService.
error TypeError: Worker() got an unexpected keyword argument 'handler'
cause O parâmetro foi renomeado de 'handler' para 'callback' na versão 1.2.0.
fix
Altere handler=minha_funcao para callback=minha_funcao.
gotcha O nome do pacote usa hífen (nsj-queue-lib), mas o módulo Python usa underscore (nsj_queue_lib). Isso pode causar confusão na importação.
fix Use `pip install nsj-queue-lib` para instalar, e `import nsj_queue_lib` no código.
breaking Na versão 1.2.0, o parâmetro 'callback' do Worker foi renomeado de 'handler' para 'callback'. Código antigo quebrará.
fix Atualize para usar `callback` em vez de `handler` ao instanciar Worker.
deprecated O suporte a Python 3.4 e 3.5 pode ser removido em versões futuras. Considere atualizar para Python 3.6+.
fix Use Python 3.6 ou superior.

Exemplo básico de envio de mensagem e execução de worker.

import os
from nsj_queue_lib import QueueService, Worker

# Exemplo de envio de mensagem
queue = QueueService(
    host=os.environ.get('QUEUE_HOST', 'localhost'),
    port=os.environ.get('QUEUE_PORT', 5672),
    username=os.environ.get('QUEUE_USER', 'guest'),
    password=os.environ.get('QUEUE_PASS', 'guest')
)
queue.send('my_queue', {'key': 'value'})

# Exemplo de worker
def process_message(msg):
    print(f"Processed: {msg}")

worker = Worker(queue='my_queue', callback=process_message)
worker.start()