通过装饰器方式实现生产者消费者模式。可以作用于函数、类的方法上,使其变为异步调用,同时,转变为逐次调用,批量执行。方便将零碎的调用转变为批量形势进行统一执行。
Project description
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 文件
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
prodconpattern-0.2.1.tar.gz
(4.0 kB
view hashes)
Built Distribution
Close
Hashes for prodconpattern-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21fa2923b29decc739de23f3e4319ad6e7d2345e9eb6449beb7049bf66f7cc09 |
|
MD5 | 66f6898fb1f49fb65347e62ec7b993ce |
|
BLAKE2b-256 | 2adb332c2b9c841f38913f784ad651b7c1216c32326267bb6813f2554bf5ef9b |