通过装饰器方式实现生产者消费者模式。可以作用于函数、类的方法上,使其变为异步调用,同时,转变为逐次调用,批量执行。方便将零碎的调用转变为批量形势进行统一执行。
Project description
ProducerConsumerPattern
通过装饰器方式实现生产者消费者模式。 可以作用于函数、类的方法上,使其变为异步调用,同时,转变为逐次调用,批量执行。方便将零碎的调用转变为批量形势进行统一执行。
Github 地址:ProducerConsumerPattern
示例代码
函数调用:逐次调用 -> 异步逐次调用
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.1.1.tar.gz
(3.5 kB
view hashes)
Built Distribution
Close
Hashes for prodconpattern-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fcdc7c89553016c2f7a1afe34aa6fbadfd4293bb6dc2f633cb43a1ec29ede17 |
|
MD5 | f4e14a71359e09609e4a5c649de2ad8e |
|
BLAKE2b-256 | bd79ddd200df525fd9dac3a90044d790ca18e2981344cc7d382721aa323c1dc9 |