Я пишу пользовательский модуль с настраиваемым действием для роли.
Действие сгенерирует некоторые данные в 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
несколько раз, как описано выше, любые предложения о том, какой подход квзять?
Спасибо.