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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|