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()

Supported platforms

Should be compatible with at least Python +3.7.

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.3.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: nats-py-worker-0.0.3.tar.gz
  • Upload date:
  • Size: 7.9 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.3.tar.gz
Algorithm Hash digest
SHA256 aa435e8952a6f0ec22e67b6085dac84eea81a76448b0b21edb0871ee0755b493
MD5 701e02707be4919c700d8982e2a2c9b4
BLAKE2b-256 815bd21f27eb4e926f11a1f112ddb01c77ce01bd04f07cba06531015bc664fae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nats_py_worker-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7d7600e7cdd28e70000f15b16682c0661f97c52aad31dc46b70bc4532edbbd63
MD5 7c07840ee16701d72814bc14bb75080d
BLAKE2b-256 846f2b9a8e48e749f68dd10e2b4c25766b305935392bbd3ee9aa335b0ee3018c

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