Skip to main content
 首页 » 编程设计

python之使用 nameko 运行服务时如何停止初始类

2025年05月04日7cloudgamer

您好,这是我的项目示例,我想使用 nameko run Test:A, 而且我发现 class A 在运行此服务期间会反复初始化。 实际上,我想连接到一个服务并重复做一些事情,我不想每次都初始化连接。那么有没有什么好的方法可以解决呢?

###FileName:Test.py### 
from nameko.timer import timer 
import time 
class A: 
    name = 'test' 
    def __init__(self): 
        self.a = 'a' 
        print('this class has been init') 
 
    @timer(interval=0) 
    def test(self): 
        try: 
            print('this is a nameko method') 
        except: 
            pass 
        time.sleep(1) 
 
    @timer(interval=2) 
    def test2(self): 
        try: 
            print('second nameko method') 
        except: 
            pass 
        time.sleep(3)``` 

请您参考如下方法:

Nameko 服务以类的形式实现,但在面向对象编程方面,它们的行为与普通类不同。

特别是,该类是为每个工作人员实例化的,即每次触发入口点时。这就是为什么您一遍又一遍地看到“此类已初始化”的原因。

一般来说,您不应该在 Nameko 服务类中使用构造函数。

要管理服务的连接和一次性设置,您应该使用 DependencyProvider .