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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: nats-py-worker-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 eb90c2bca1e739251291d178dfab51d20dc37d68fa56127682d4f8e8402de87a
MD5 85660cd5c5ca353eb68f220bfebcbf01
BLAKE2b-256 b94c375a46f0e8a2a67ebb9368fe0c0af9bf0b10ea4580c0e94eca32d81506f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nats_py_worker-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9efb20bdbcce841c8535bd94243ba197373c832b458b981cfd61444bbfaab9f6
MD5 30c8fb9dca3b907ba0b9d1ccd67a7fdf
BLAKE2b-256 7d4f3dc1139c037c17cb10032348ae196c3d6d105ca95d3c9ad508ef90f919bb

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