Skip to main content

An opinionated utility for using NATS as a worker queue with NATS.py

Project description

NATS Worker

pypi Versions License MIT

An opinionated utility for using NATS as a worker queue with NATS.py.

Example

# pip install nats-py-worker

import nats_worker
from nats.js.api import StreamConfig, KeyValueConfig

worker = Worker(name="demo")

async def init_nats(connection):
    connection.jetstream().add_stream(new StreamConfig(name="events", subjects=["inbox.*", "outbox.*"]))
    connection.jetstream().create_key_value(config=KeyValueConfig(bucket="state"))

@worker.background_consumer(subject="inbox.*")
async def watch_incoming(msg):
    ...

@worker.background_state_machine(subject="inbox.*", bucket="state")
async def next_state(kv, msg):
    ...
    await worker.publish_msg(subject=outbox, payload=side_effect)
    ...
    return new_state

if __name__ == '__main__':
    worker.start_as_app()

Installing

pip install nats-py-worker

Development

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

The gitlab-ci.yml is currently setup to push to PyPi when merged to main. Make sure you have updated the version other wise it will fail.

License

Unless otherwise noted, the NATS Worker source files are distributed under the MIT license found in the LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nats-py-worker-0.0.7.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

nats_py_worker-0.0.7-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file nats-py-worker-0.0.7.tar.gz.

File metadata

  • Download URL: nats-py-worker-0.0.7.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for nats-py-worker-0.0.7.tar.gz
Algorithm Hash digest
SHA256 f3fc03eb33771392c30b5532f987f51acc75ea279ee281a98c738b60a12bf6a7
MD5 0d18694a3db93f58652883d73f640f45
BLAKE2b-256 02503b626c9087cabae9ff26a073a15c88c57f482205246301f7470999418a67

See more details on using hashes here.

File details

Details for the file nats_py_worker-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for nats_py_worker-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 874038b215b436acf01c24d48df8f43f51d109315942e98003c2a0f43749fcfa
MD5 113339630e3069759b89579015d8449a
BLAKE2b-256 510c395f10b282b834fea83b513ffd4ee521469fcf34b2abb648708c565c0dd9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page