Skip to main content

Generic worker that performs concurrent tasks using coroutine.

Project description

coworker

Generic worker that performs concurrent tasks using coroutine.

Quick Start Tutorial

Define how a task is performed and create the worker:

from coworker import Coworker

class SquareWorker(Coworker)
    async def do_task(self, task)
        return task * task

worker = SquareWorker()

To run in the background forever and add tasks:

# Run in background
asyncio.ensure_future(worker.start())

# Add tasks
tasks = list(range(100))
task_futures = await worker.add_tasks(tasks)

# Wait / get results
asyncio.wait(task_futures)
results = [f.result() for f in task_futures]

# Do a single task
task = 2
task_future = worker.add_tasks(task)
result = await task_future  # result = 4

# Stop worker (cancels outstanding tasks)
worker.stop()

To run for a list of tasks and exit when finished:

task_futures = await worker.start(tasks)
results = [f.result() for f in task_futures]

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

coworker-0.0.3.tar.gz (11.8 kB view hashes)

Uploaded Source

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