A Celery-like event loop with asyncio and no more dependencies
Project description
A Celery-like event loop with `asyncio` and no dependencies
It runs an asyncio event loop in a separate thread, drives native coroutines within the loop, and then returns the future in an asynchronous manner.
Dependency
It requires Python 3.5+.
Installation
$ git clone https://github.com/dgkim5360/asyncloop.git $ cd asyncloop asyncloop$ python setup.py install
Getting started
import asyncio as aio from asyncloop import AsyncLoop # A simple job, which should be a native coroutine async def job_to_wait(sleep_sec): await aio.sleep(sleep_sec) return sleep_sec # A simple callback def callback(fut): if fut.cancelled(): print('CANCELLED:', fut) elif fut.done(): print('DONE:', fut) print('RESULT:', fut.result() # AsyncLoop starts aloop = AsyncLoop() # <AsyncLoop(Thread-##, initial)> aloop.start() # <AsyncLoop(Thread-##, started ##########)> # Submit a job and be free to work on # it returns an AsyncJob object, a simple wrapper of concurrent.Future ajob = aloop.submit(job_to_wait(10), callback) ajob # <AsyncJob at 0x####> # After 10 seconds the callback activated # DONE: <Future at 0x#### state=finished returned int> # RESULT: 10 # Get a result ret = ajob.result() # 10 # You MUST stop the aloop before exit or destroy aloop.stop() # <AsyncLoop(Thread-##, stopped ##########)>
So far, that’s all.
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
asyncloop-0.0.1.dev2.tar.gz
(3.6 kB
view details)
Built Distribution
File details
Details for the file asyncloop-0.0.1.dev2.tar.gz
.
File metadata
- Download URL: asyncloop-0.0.1.dev2.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c53ded99c97be8059213b2f12349c58e053f3f4c3f35aa993f7e1cb210aa3c13 |
|
MD5 | df448cf26d864f1f07c4e0c16341a977 |
|
BLAKE2b-256 | 9832024effdfdc7ed82df04d0c6f2aa7cd39d763bf74e086ba7da4e492f7d97b |
File details
Details for the file asyncloop-0.0.1.dev2-py3-none-any.whl
.
File metadata
- Download URL: asyncloop-0.0.1.dev2-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a12e50e2934e5cee7893c0abf46ea3d267d7c602448c3bf16feddca7a989f664 |
|
MD5 | 39524eb074ed683df7d9becb1dc3a88f |
|
BLAKE2b-256 | 3500cee47ed2df703f0543c46bf63042e7f42e96b2758362aad60dbb958a3ada |