Metadata-Version: 2.1
Name: nsj_queue_lib
Version: 0.1.2
Summary: Biblioteca para facilitar a implementação de filas e workers.
Home-page: https://github.com/Nasajon/nsj-queue-lib
Author: Nasajon Sistemas
Author-email: contact.dev@nasajon.com.br
Project-URL: Source, https://github.com/Nasajon/nsj-queue-lib
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.4
Description-Content-Type: text/markdown

# nsj-queue-lib
Biblioteca para facilitar a implementação de filas e workers, com duas principais capacidades:

* Enfileiramento transacionado com o processo (alteração de banco) que deu origem à mensagem na fila.
* Retirada da fila transacionada com o processo de consumo em si de cada mensagem.

## Funcionamento

TODO

## Como Usar

TODO

## Ambiente de Desenvolvimento

### Montando o ambiente
Siga os passos a seguir para montar o ambiente de desenvolvimento:

1. Faça uma copia do arquivo `.env.dist` com nome `.env`.
2. Ajuste a variável PYTHONPATH contida no arquivo `.env`.
3. Crie um ambiente virtual do python (para isolamento dos projetos):
> python3 -m venv .venv
4. Inicie o ambiente virtual:
> source ./.venv/bin/activate
5. Instale as dependências, no ambiente virtual:
> pip install -r requirements.txt
6. Construa a imagem docker de base dos workers, e dos testes:
> docker build -t worker_teste .
7. Inicie o banco de dados de exemplo:
> docker-compose up -d postgres
8. Inicie o worker de consumo da fila:
> docker-compose up -d worker
9. Execute os testes automáticos, para garantir que esteja tudo rodando:
> docker-compose up tests

Após concluir o desenvolvimento, sugere-se para e remover as imagens criadas (para não ficarem rodando de modo indefinido, consumindo recursos de sua máquina):
> make stop
> make remove

Obs.: Os comandos detalhados no passo a passo de construção do ambiente, podem ser executados pelo make (simplificando um pouco). Mas, foram apresentados os detalhes, para dar real noção do que é utilizado em ambiente de desenvolvimento.


### Testes automatizados
Por hora, apenas o teste do fluxo principal está implementado, e o mesmo pode ser executado por meio do comando abaixo (após inicializar todo o ambiente de desenvolvimento):

> make tests

### Versionando o projeto

Pré-requisito:
> make install_to_pkg

Passos para construir e enviar uma nova versão ao PyPi:

1. make build_pkg
2. make upload_pkg
