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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|