通过装饰器方式实现生产者消费者模式。可以作用于函数、类的方法上,使其变为异步调用,同时,转变为逐次调用,批量执行。方便将零碎的调用转变为批量形势进行统一执行。

prodconpattern的Python项目详细描述


ProducerConsumerPattern

Build Status

通过装饰器方式实现生产者消费者模式。 可以作用于函数、类的方法上,使其变为异步调用,同时,转变为逐次调用,批量执行。方便将零碎的调用转变为批量形势进行统一执行。

Github 地址:ProducerConsumerPattern

安装

pip install prodconpattern

示例代码

函数调用:逐次调用 -> 异步逐次调用

fromprodconpatternimportProducerConsumer@ProducerConsumer(threshold=3)defmethod_single_invoke(n):"""函数调用:逐次调用 -> 异步逐次调用"""print('method_single_invoke ->',n)importtime# 函数调用:逐次调用 -> 异步逐次调用forninrange(10):print("call -> method_single_invoke(%d)"%n)method_single_invoke(n)time.sleep(6)

函数调用:逐次调用 -> 异步批量调用

fromprodconpatternimportProducerConsumer@ProducerConsumer(threshold=3,pass_arg_list=True)defmethod_list_invoke(n):"""函数调用:逐次调用 -> 异步批量调用"""print('method_list_invoke ->',n)importtime# 函数调用:逐次调用 -> 异步批量调用forninrange(10):# time.sleep(1)print("call -> method_list_invoke(%d)"%n)method_list_invoke(n)time.sleep(6)

对象方法调用:逐次调用 -> 异步批量调用

fromprodconpatternimportProducerConsumerclassAClass:@ProducerConsumer(threshold=3,pass_arg_list=True,is_class_method=True)defclass_method_list_invoke(self,n):"""对象方法调用:逐次调用 -> 异步批量调用"""print(self.__class__.__name__,"print_method",n)importtime# 对象方法调用:逐次调用 -> 异步批量调用aaa=AClass()forninrange(10):print("call -> class_method_list_invoke(%d)"%n)aaa.class_method_list_invoke(n)time.sleep(6)

更多例子参考 example.py 文件

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

推荐PyPI第三方库


热门话题
java应用程序几乎占用100%的cpu时间   当一个字段不为空时,java不验证字段hibernate   java用泛型搜索数组中的最大元素   JavaFx中的java直方图   java在IF语句中定义内部类   java JPA(Hibernate)按经度/纬度查找最近的10个对象   java无法使用bool char方法将char转换为字符串   java在从图像中提取时分别突出显示文本   arraylist Java:我应该使用什么类型作为可调整大小的原语列表?   jdbc如何在java中获取连接字符串而不打开连接?   java启动tomcat7:在eclipse中运行maven插件并调试   java NoTouchElementException无限循环与pmd DDA异常   java不需要的ListView项目选择   java动态类在运行时的重新定义   缓存是否减少了java中的运行时间?   java字体在JComboBox中呈现不正确   Android Studio中的java Listview与TableView   java模式验证警告   在Java中尝试使用hasNext时数组出错