我正在编写一个具有针对角色的自定义操作的自定义模块。
该操作将在dict
中生成一些具有合理数量的键/值(例如100)的数据,但这可能需要一两秒钟。
所有主机的这些键都相同,除了不是所有主机都将使用所有键(它们可能会留下一两个键)。
如何才能“缓存”这些键/值,使其仅生成一次(出于性能原因),然后并行应用于所有主机?
我尝试在ActionModule
内创建一个类变量,但这显然是一个元类,因此每次调用它都会是一个不同的类对象(我故意说“类对象”)
class ActionModule(ActionBase):
data = None
def run(self, tmp=None, task_vars=None):
if self.data is None: # That is not thread safe, but just pretend
self.data = "a lot of data here" # just pretend again
return self._execute_module(...)
如上所述,此解决方案将多次生成data
,对采用哪种方法有何建议?
谢谢。