prodconpattern 0.2.1

Creator: railscoder56

Last updated:

Add to Cart

Description:

prodconpattern 0.2.1

ProducerConsumerPattern

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

pip install prodconpattern

示例代码
函数调用:逐次调用 -> 异步逐次调用
from prodconpattern import ProducerConsumer

@ProducerConsumer(threshold=3)
def method_single_invoke(n):
"""函数调用:逐次调用 -> 异步逐次调用"""
print('method_single_invoke ->', n)

import time

# 函数调用:逐次调用 -> 异步逐次调用
for n in range(10):
print("call -> method_single_invoke(%d)" % n)
method_single_invoke(n)

time.sleep(6)

函数调用:逐次调用 -> 异步批量调用
from prodconpattern import ProducerConsumer

@ProducerConsumer(threshold=3, pass_arg_list=True)
def method_list_invoke(n):
"""函数调用:逐次调用 -> 异步批量调用"""
print('method_list_invoke ->', n)

import time

# 函数调用:逐次调用 -> 异步批量调用
for n in range(10):
# time.sleep(1)
print("call -> method_list_invoke(%d)" % n)
method_list_invoke(n)

time.sleep(6)

对象方法调用:逐次调用 -> 异步批量调用
from prodconpattern import ProducerConsumer

class AClass:

@ProducerConsumer(threshold=3, pass_arg_list=True, is_class_method=True)
def class_method_list_invoke(self, n):
"""对象方法调用:逐次调用 -> 异步批量调用"""
print(self.__class__.__name__, "print_method", n)

import time

# 对象方法调用:逐次调用 -> 异步批量调用
aaa = AClass()
for n in range(10):
print("call -> class_method_list_invoke(%d)" % n)
aaa.class_method_list_invoke(n)

time.sleep(6)

更多例子参考
example.py 文件

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.