Metadata-Version: 2.4
Name: procedere-mq-sdk
Version: 0.2.0
Summary: Python SDK para LiteMQ/ProcedereMQ
Project-URL: Homepage, https://github.com/jeffersontadeuleite/procedereMQ
Project-URL: Repository, https://github.com/jeffersontadeuleite/procedereMQ
Project-URL: Issues, https://github.com/jeffersontadeuleite/procedereMQ/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.31.0

# ProcedereMQ

Broker de filas leve com transporte HTTP/TCP e SDKs para Go e Python.

## SDK Go

Import:

```go
import "github.com/jeffersontadeuleite/procedereMQ/pkg/sdk"
```

Exemplo de Producer:

```go
ctx := context.Background()
producer, err := sdk.NewProducer("http://127.0.0.1:65090", "emails")
if err != nil {
    return err
}

job, err := producer.Publish(ctx, map[string]any{
    "to": "alice@example.com",
    "template": "welcome",
}, sdk.PublishOptions{MaxRetry: 3})
if err != nil {
    return err
}
fmt.Println("job criado:", job.ID)
```

Exemplo de Consumer:

```go
ctx := context.Background()
consumer, err := sdk.NewConsumer("http://127.0.0.1:65090", "emails")
if err != nil {
    return err
}

job, err := consumer.Receive(ctx)
if err != nil {
    if errors.Is(err, sdk.ErrQueueEmpty) {
        return nil
    }
    return err
}

if err := consumer.AckJob(ctx, job); err != nil {
    return err
}
```

## SDK Python

Instalação:

```bash
pip install procedere-mq-sdk==0.2.0
```

Exemplo de Producer:

```python
from python_sdk import LiteMQClient

client = LiteMQClient("http://127.0.0.1:65090")
producer = client.producer("emails")

job = producer.publish(
    {"to": "alice@example.com", "template": "welcome"},
    max_retry=3,
)
print("job criado:", job["id"])
```

Exemplo de Consumer:

```python
from python_sdk import LiteMQClient, QueueEmptyError

client = LiteMQClient("http://127.0.0.1:65090")
consumer = client.consumer("emails")

try:
    job = consumer.receive()
    consumer.ack(job)
except QueueEmptyError:
    pass
```

## Publicação

### Go SDK

```bash
make publish-go-sdk VERSION=0.2.0
```

### Python SDK (PyPI)

```bash
make check-python-sdk
make publish-python-sdk TWINE_REPOSITORY=pypi
```
