Library helps easy write concurrent executed code blocks
Project description
Concurrently
Library helps easy write concurrent executed code blocks.
Quick example:
import asyncio from concurrently import concurrently async def amain(loop): """ How to fetch some web pages with concurrently. """ urls = [ # define pages urls 'http://test/page_1', 'http://test/page_2', 'http://test/page_3', 'http://test/page_4', ] results = {} # immediately run wrapped function concurrent # in 2 thread (asyncio coroutines) @concurrently(2) async def fetch_urls(): for url in urls: page = await fetch_page(url) # some function for download page results[url] = page # wait until all concurrent threads finished await fetch_urls() print(results) if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(amain(loop))
Concurrently supports specific different concurrent engines.
Engines
AsyncIOEngine
Default engine for concurrently run code as asyncio coroutines:
from concurrently import concurrently, AsyncIOEngine ... @concurrently(2, engine=AsyncIOEngine, loop=loop) # loop is option async def fetch_urls(): ... await fetch_urls()
AsyncIOThreadEngine
Concurrently run code in threads with asyncio:
from concurrently import concurrently, AsyncIOThreadEngine ... @concurrently(2, engine=AsyncIOThreadEngine, loop=loop) def fetch_urls(): # not async def ... await fetch_urls()
ThreadEngine
Concurrently run code in system threads:
from concurrently import concurrently, ThreadEngine ... @concurrently(2, engine=ThreadEngine) def fetch_urls(): # not async def ... fetch_urls() # not await
ProcessEngine
Concurrently run code in system process:
from concurrently import concurrently, ProcessEngine ... @concurrently(2, engine=ProcessEngine) def fetch_urls(): ... fetch_urls()
GeventEngine
Concurrently run code as gevent greenlet:
from concurrently import concurrently, GeventEngine ... @concurrently(2, engine=GeventEngine) def fetch_urls(): ... fetch_urls()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
concurrently-0.8.0.tar.gz
(10.1 kB
view details)
File details
Details for the file concurrently-0.8.0.tar.gz
.
File metadata
- Download URL: concurrently-0.8.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf41740c2d7964795990033618716fef86c619ddb578768984e2f356d6db975d |
|
MD5 | 0f66d2bafd41dbeaf5a5e5552131f7bc |
|
BLAKE2b-256 | 6376a6d4949b057600b599f8916bfcff5f68a25841942d3efe38157f38e6cc62 |