基于异步的任务队列。

Kohlrabi的Python项目详细描述


kohlrabi是python应用程序的异步任务队列。它运行 在服务器上,并与任何现有的应用程序相匹配 在Python3.3或更高版本上运行。它允许轻松地转换 应用程序到异步兼容部件,而不影响任何正常 封锁代码。

安装

pypi上提供kohlrabi以方便安装:

pip install kohlrabi

或者,您可以直接从github安装它:

pip install https://github.com/SunDwarf/Kohlrabi.git@master

用法

kohlrabi分为两部分:客户机和服务器。

一个对象由双方共享,应该在 主文件。

kh=kohlrabi.Kohlrabi()

运行服务器时,必须在 命令行上的格式:

kohlrabi-server yourapp.mainfile:kh
位于:前面的第一部分表示 模块;如果要导入它,将如何加载它。第二次 part表示先前创建的kohlrabi对象。
然后加载kohlrabi服务器,并在 服务器端。

在应用程序代码中,使用kohlrabi非常简单。

创建任务

要创建任务,只需用kohlrabi任务装饰函数 装饰工。

@kh.taskdefhello():print("Hello, world!")

然后,在main方法(或__name__check)中,将任务调用为 如果这是一个函数。

if__name__=="__main__":hello()

如果您检查服务器进程的控制台,它将打印 Hello, world!

更高级的任务

一个更高级任务的例子是添加任务。

@kh.taskdefadd(a,b):returna+b

在主方法中,使用所选参数调用add任务:

fut=add(1,2)

这将返回一个clienttaskresult对象,您可以使用它来获取 任务的结果。

print("Added together 1 and 2 to get:",fut.result)

请注意,ClientTaskResult.result正在阻塞,将等到 任务已完成以获取任务的结果。如果你只想 等一段时间,使用 ClientTaskResult.result_with_timeout方法。

print("Added together 1 and 2 to get:",fut.result_with_timeout(1))

链接任务

如果希望将任务链接在一起,请使用yield from关键字。打开(放) 在服务器端,任务只是一个包装好的协程,这意味着您可以使用 好像是一次联程。

@kh.taskdefadd_two(a):returna+2@kh.taskdefget_four():four=yield fromadd_two(2)returnfour

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?