Skip to main content

Async execution pool

Project description

async-executor

PyPI - Version

Async execution pool

Examples

Limit the number of concurrently running awaitables

import asyncio
import time

import async_executor


async def sleep_and_print(i):
    print(f'{i} {int(time.time())} - before sleep')
    await asyncio.sleep(1)
    print(f'{i} {int(time.time())} - after sleep')


async def main():
    # limit to a maximum of two concurrent executions
    executor = async_executor.AsyncExecutor(max_concurrent=2)

    # awaitables are only queued here - nothing is run
    for i in range(5):
        executor.submit(sleep_and_print, i)

    # awaitables begin executing
    async for task in executor:
        task.result()

asyncio.run(main())

This shows that only a maximum of two executions are allowed to run concurrently.

$ python examples/example_1.py
0 1670613515 - before sleep
1 1670613515 - before sleep
0 1670613516 - after sleep
1 1670613516 - after sleep
2 1670613516 - before sleep
3 1670613516 - before sleep
2 1670613517 - after sleep
3 1670613517 - after sleep
4 1670613517 - before sleep
4 1670613518 - after sleep

Installation

pip install async-executor

License

async-executor is distributed under the terms of the MIT license.

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

async_executor-0.1.2.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

async_executor-0.1.2-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file async_executor-0.1.2.tar.gz.

File metadata

  • Download URL: async_executor-0.1.2.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.4

File hashes

Hashes for async_executor-0.1.2.tar.gz
Algorithm Hash digest
SHA256 910e74dd7aaaa2a39f3e3fc91e3f87a01d23bea650fbf431746d2961f928d482
MD5 0794fd3f961ef833472e18184b2f4f8c
BLAKE2b-256 59bc6bd2b0133f30854235748c7175c598c38e6b18aa3fb70d683dcbea09eda0

See more details on using hashes here.

File details

Details for the file async_executor-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: async_executor-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.4

File hashes

Hashes for async_executor-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 44596587fae296ce12cfd25127ae91dadeb2f10e81769a7326ac7201b2d24e20
MD5 a53fa63c0fd3ec9049f5be8c25d63e48
BLAKE2b-256 98c478e168f6847d46e4f86a109ec88ba765fcb9d793c5c1968a44e7b71fc239

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