Python library for efficiently batch-processing workloads asynchronously with batch-size- and time-based flushes.
Project description
Timed Batch Worker
Python library for efficiently batch-processing workloads asynchronously with batch-size- and time-based flushes using short-circuiting events.
Installation
pip install timed-batch-worker
Usage
from timed_batch_worker import TimedBatchWorker
# Handle the batched items
def handle_batch(items):
http.post('/api/logs/bulk', data=items)
# Create a worker that flushes the queue when:
# 1. The batch contains 20 objects, or
# 2. Five seconds have passed since the last flush
worker = TimedBatchWorker(
handler=handle_batch,
flush_interval=5,
flush_batch_size=20,
)
# Worker started in separate thread to avoid throttling main event loop
# in case the batch handler includes synchronous workloads.
worker.start()
# Add objects to the current batch at any time
@app.get('/users/create')
def create_user():
...
# Hand off an object to the worker
worker.enqueue({
'event': 'USER_CREATED',
'data': user
})
...
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
Built Distribution
File details
Details for the file timed-batch-worker-0.0.5.tar.gz
.
File metadata
- Download URL: timed-batch-worker-0.0.5.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7a70c1ccea2ed51fbccde8a002d07982511ef7255d231f29f129c315a8fd374 |
|
MD5 | 8856d08c2753a43a942ec99b68067fa2 |
|
BLAKE2b-256 | e29947a6a4a28848779c0013fe79e1989bd25ee355848c684e741bfa3709dc5e |
File details
Details for the file timed_batch_worker-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: timed_batch_worker-0.0.5-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd87d810c3e01d603541ff6f289996b20b46f71e364e1aac7b060b0a198f6020 |
|
MD5 | a941d02efd883a3e978cd9a31a1868d2 |
|
BLAKE2b-256 | 9cd514865be26e7ade6dbf14a880d7ec7824c9bb9c2d67b2be0161d41cea1528 |