Lupro Scheduler is a synchronous task chain scheduler support sweeper, multi-thread, multi-process synchronous communication.
Project description
Lupro Scheduler
Lupro Scheduler 是一个任务链同步调度器(支持协程,线程,进程同步通讯)
安装 Lupro_Scheduler
使用 PyPi 安装 Lupro
pip
Find, install and publish Python packages with the Python Package Indexpip install lupro_scheduler
开始使用
- 导入
from lupro_scheduler import Scheduler
调度任务Task
from lupro_scheduler import Task
from lupro_scheduler.typing import RunIOintensive
import asyncio
async def main(a, b):
await asyncio.sleep(2)
return a+b
task = Task(main, range(10), kwargs = [{'b': i} for i in range(10)], method = RunIOintensive. RunAsync_CREATETASK)
print(task.run())
这样即可使用RunTask调用不同的执行方法
调用方法 RunTask
class RunTask(enum.Enum):
'''RunTask method'''
APPLY = 0
APPLYASYNC = 1
MAP = 2
MAPASYNC = 3
EXECUTOR = 4
RunAsync_CREATETASK = 10
RunAsync_GATHER = 11
RunAsync_ASCOMPLETED = 12
RunAsync_RUNFOREVER = 13
RunThreadMap_MAP = 20
RunTreadPool_POOL = 30
RunGevent_GEVENT = 40
RunGevent_MAP = 41
任务链调度 Scheduler
from lupro_scheduler import Scheduler
from lupro_scheduler.typing import RunIOintensive
import random
import asyncio
import time
async def main(a, b):
await asyncio.sleep(random.randint(4,8))
print(f'IOintensive task {a} {b}!')
return a+b
def main1(a):
print(f'Calintensive task {a}!')
time.sleep(random.randint(1,4))
return a**a
if __name__ == '__main__':
task = Scheduler()
# 添加IO密集型任务
task.addIO(main, range(10), kwargs = [{'b': i} for i in range(10)], method = 10)
# 添加计算密集型任务
task.addCal(main1)
# 大概12s左右完成
print(task.run())
特性
- 协程接口
- 线程接口
- 进程接口
- 任务链异步调度
- 任务链同步调度
- Scheduler(IO) 可等待
api 文档
完善中
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
lupro_scheduler-1.0.0.tar.gz
(11.0 kB
view details)
Built Distribution
File details
Details for the file lupro_scheduler-1.0.0.tar.gz
.
File metadata
- Download URL: lupro_scheduler-1.0.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95de1944e5fb8ac05b5e350c8f139de371d612e146a7ba8acdfc504426d01cb6 |
|
MD5 | 0a5f49686f8ed08ddf52ba647b7e57cd |
|
BLAKE2b-256 | d2ec2c5620944f1ff91b11bbf6cd5ebc724613770cbb1b95fb983df33f9f3d86 |
File details
Details for the file lupro_scheduler-1.0.0-py2.py3-none-any.whl
.
File metadata
- Download URL: lupro_scheduler-1.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2e1cbc10c5d09e69ab0cd49932668f06e8827d89317282afd6c862eaa1fb06c |
|
MD5 | 88a421333a072f06e0e39b4a0f186a36 |
|
BLAKE2b-256 | f4187f8e8cbe85911339fbcdc86e02ccad2848986aa741d1c61e6f02c23fac88 |