Skip to main content

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

timed-batch-worker-0.0.5.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

timed_batch_worker-0.0.5-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

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

Hashes for timed-batch-worker-0.0.5.tar.gz
Algorithm Hash digest
SHA256 e7a70c1ccea2ed51fbccde8a002d07982511ef7255d231f29f129c315a8fd374
MD5 8856d08c2753a43a942ec99b68067fa2
BLAKE2b-256 e29947a6a4a28848779c0013fe79e1989bd25ee355848c684e741bfa3709dc5e

See more details on using hashes here.

File details

Details for the file timed_batch_worker-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for timed_batch_worker-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fd87d810c3e01d603541ff6f289996b20b46f71e364e1aac7b060b0a198f6020
MD5 a941d02efd883a3e978cd9a31a1868d2
BLAKE2b-256 9cd514865be26e7ade6dbf14a880d7ec7824c9bb9c2d67b2be0161d41cea1528

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