Skip to main content

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 Index
  • pip install lupro_scheduler

开始使用

  1. 导入 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


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)

Uploaded Source

Built Distribution

lupro_scheduler-1.0.0-py2.py3-none-any.whl (13.5 kB view details)

Uploaded Python 2 Python 3

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

Hashes for lupro_scheduler-1.0.0.tar.gz
Algorithm Hash digest
SHA256 95de1944e5fb8ac05b5e350c8f139de371d612e146a7ba8acdfc504426d01cb6
MD5 0a5f49686f8ed08ddf52ba647b7e57cd
BLAKE2b-256 d2ec2c5620944f1ff91b11bbf6cd5ebc724613770cbb1b95fb983df33f9f3d86

See more details on using hashes here.

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

Hashes for lupro_scheduler-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b2e1cbc10c5d09e69ab0cd49932668f06e8827d89317282afd6c862eaa1fb06c
MD5 88a421333a072f06e0e39b4a0f186a36
BLAKE2b-256 f4187f8e8cbe85911339fbcdc86e02ccad2848986aa741d1c61e6f02c23fac88

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