Skip to main content

A simple producer consumer library for Beanstalkd.

Project description

Arend

A simple producer-consumer library for the Beanstalkd queue.

Installation

Hit the command:

pip install arend

Basic Usage

In your code:

from arend import arend_task
from arend.backends.mongo import MongoSettings
from arend.brokers import BeanstalkdSettings
from arend.settings import ArendSettings
from arend.worker import consumer

settings = ArendSettings(
   beanstalkd=BeanstalkdSettings(host="beanstalkd", port=11300),
   backend=MongoSettings(
       mongo_connection="mongodb://user:pass@mongo:27017",
       mongo_db="db",
       mongo_collection="Tasks"
   ),
)

@arend_task(queue="my_queue", settings=settings)
def double(num: int):
   return 2 * num

double(2)  # returns 4
task = double.apply_async(args=(4,))  # It is sent to the queue

consumer(queue="my_queue", settings=settings)  # consume tasks from the queue

Task = settings.get_backend()  # you can check your backend for the result
task = Task.get(uuid=task.uuid)
assert task.result == 4

Backends

The available backends to store logs are Mongo and Redis. Please read the docs for further information.

Setting your backend with environment variables

You can set your backend by defining env vars. The AREND__ prefix indicates that it belongs to the Arend.

# Redis
AREND__REDIS_HOST='redis'
AREND__REDIS_DB='1'
AREND__REDIS_PASSWORD='pass'
...

# Mongo
AREND__MONGO_CONNECTION='mongodb://user:pass@mongo:27017'
AREND__MONGO_DB='db'
AREND__MONGO_COLLECTION='logs'
...

In your code:

from arend import arend_task
from arend.worker import consumer


@arend_task(queue="my_queue")
def double(num: int):
   return 2 * num

double.apply_async(args=(4,))  # It is sent to the queue

consumer(queue="my_queue")

Documentation

Please visit this link for documentation.

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

arend-0.1.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

arend-0.1.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file arend-0.1.0.tar.gz.

File metadata

  • Download URL: arend-0.1.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.10.104-linuxkit

File hashes

Hashes for arend-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c85bbeee5a2a827069b2744d2deef8fda7909090b29c0c1d23375fdf330010f8
MD5 db3f16cb66ed6667c38d92a257c189e9
BLAKE2b-256 cbe24945de89a05a86a8719a1e9acd38a0d2b7656f9ac24b745aa6e389ad254c

See more details on using hashes here.

File details

Details for the file arend-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: arend-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.10.104-linuxkit

File hashes

Hashes for arend-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de80004d6ce5c7a66485971c7af716004fc447ef1e365caa1268b0e9bb2af546
MD5 a11dc69190489919beeda3f34f3c7f8c
BLAKE2b-256 877f80e4c197a7e2cf76af6ec202d7e3e5e2e27163989872ff242fe0354bd173

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