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
Release history Release notifications | RSS feed
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)
Built Distribution
arend-0.1.0-py3-none-any.whl
(13.2 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c85bbeee5a2a827069b2744d2deef8fda7909090b29c0c1d23375fdf330010f8 |
|
MD5 | db3f16cb66ed6667c38d92a257c189e9 |
|
BLAKE2b-256 | cbe24945de89a05a86a8719a1e9acd38a0d2b7656f9ac24b745aa6e389ad254c |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | de80004d6ce5c7a66485971c7af716004fc447ef1e365caa1268b0e9bb2af546 |
|
MD5 | a11dc69190489919beeda3f34f3c7f8c |
|
BLAKE2b-256 | 877f80e4c197a7e2cf76af6ec202d7e3e5e2e27163989872ff242fe0354bd173 |