本文整理汇总了Python中ion.util.enhanced_resource_registry_client.EnhancedResourceRegistryClient.cache_resources方法的典型用法代码示例。如果您正苦于以下问题:Python EnhancedResourceRegistryClient.cache_resources方法的具体用法?Python EnhancedResourceRegistryClient.cache_resources怎么用?Python EnhancedResourceRegistryClient.cache_resources使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ion.util.enhanced_resource_registry_client.EnhancedResourceRegistryClient
的用法示例。
在下文中一共展示了EnhancedResourceRegistryClient.cache_resources方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: AgentConfigurationBuilder
# 需要导入模块: from ion.util.enhanced_resource_registry_client import EnhancedResourceRegistryClient [as 别名]
# 或者: from ion.util.enhanced_resource_registry_client.EnhancedResourceRegistryClient import cache_resources [as 别名]
class AgentConfigurationBuilder(object):
def __init__(self, clients, RR2=None):
self.clients = clients
self.RR2 = RR2
if self.RR2 is None:
log.warn("Creating new RR2")
self.RR2 = EnhancedResourceRegistryClient(self.clients.resource_registry)
if not isinstance(self.RR2, EnhancedResourceRegistryClient):
raise AssertionError("Type of self.RR2 is %s not %s" %
(type(self.RR2), type(EnhancedResourceRegistryClient)))
self.agent_instance_obj = None
self.associated_objects = None
self.last_id = None
self.will_launch = False
self.generated_config = False
def _predicates_to_cache(self):
return [PRED.hasOutputProduct,
#PRED.hasStream,
#PRED.hasStreamDefinition,
PRED.hasAgentInstance,
PRED.hasAgentDefinition,
PRED.hasDataset,
PRED.hasDevice,
PRED.hasNetworkParent,
#PRED.hasParameterContext,
PRED.hasDeployment,
]
def _resources_to_cache(self):
return [#RT.StreamDefinition,
RT.ParameterDictionary,
#RT.ParameterContext,
RT.Deployment,
]
def _update_cached_predicates(self):
# cache some predicates for in-memory lookups
preds = self._predicates_to_cache()
log.debug("updating cached predicates: %s" % preds)
time_caching_start = get_ion_ts()
for pred in preds:
log.debug(" - %s", pred)
self.RR2.cache_predicate(pred)
time_caching_stop = get_ion_ts()
total_time = int(time_caching_stop) - int(time_caching_start)
log.info("Cached %s predicates in %s seconds", len(preds), total_time / 1000.0)
def _update_cached_resources(self):
# cache some resources for in-memory lookups
rsrcs = self._resources_to_cache()
log.debug("updating cached resources: %s" % rsrcs)
time_caching_start = get_ion_ts()
for r in rsrcs:
log.debug(" - %s", r)
self.RR2.cache_resources(r)
time_caching_stop = get_ion_ts()
total_time = int(time_caching_stop) - int(time_caching_start)
log.info("Cached %s resource types in %s seconds", len(rsrcs), total_time / 1000.0)
def _clear_caches(self):
log.warn("Clearing caches")
for r in self._resources_to_cache():
self.RR2.clear_cached_resource(r)
for p in self._predicates_to_cache():
self.RR2.clear_cached_predicate(p)
def _lookup_means(self):
"""
return a dict indicating how various related resources will be looked up
The dict is keyed on association type:
PRED.hasAgentInstance -> device type
PRED.hasModel -> model type
PRED.hasAgentDefinition -> agent type
"""
raise NotImplementedError("Extender of class must implement this")
def _augment_dict(self, title, basedict, newitems):
# TODO: pyon.util.containers has dict_merge for this purpose (without logs)
for k, v in newitems.iteritems():
if k in basedict:
prev_v = basedict[k]
# just warn if the new value is different
if v != prev_v:
log.warn("Overwriting %s[%s] of '%s' with '%s'", title, k, prev_v, v)
else:
log.debug("Overwriting %s[%s] with same value already assigned '%s'",
title, k, v)
basedict[k] = v
#.........这里部分代码省略.........
示例2: AgentConfigurationBuilder
# 需要导入模块: from ion.util.enhanced_resource_registry_client import EnhancedResourceRegistryClient [as 别名]
# 或者: from ion.util.enhanced_resource_registry_client.EnhancedResourceRegistryClient import cache_resources [as 别名]
class AgentConfigurationBuilder(object):
def __init__(self, clients, RR2=None):
self.clients = clients
self.RR2 = RR2
if self.RR2 is None:
log.warn("Creating new RR2")
self.RR2 = EnhancedResourceRegistryClient(self.clients.resource_registry)
if not isinstance(self.RR2, EnhancedResourceRegistryClient):
raise AssertionError("Type of self.RR2 is %s not %s" %
(type(self.RR2), type(EnhancedResourceRegistryClient)))
self.agent_instance_obj = None
self.associated_objects = None
self.last_id = None
self.will_launch = False
self.generated_config = False
def _predicates_to_cache(self):
return [PRED.hasOutputProduct,
#PRED.hasStream,
#PRED.hasStreamDefinition,
PRED.hasAgentInstance,
PRED.hasAgentDefinition,
PRED.hasDataset,
PRED.hasDevice,
PRED.hasNetworkParent,
#PRED.hasParameterContext,
]
def _resources_to_cache(self):
return [#RT.StreamDefinition,
RT.ParameterDictionary,
#RT.ParameterContext,
]
def _update_cached_predicates(self):
# cache some predicates for in-memory lookups
preds = self._predicates_to_cache()
log.debug("updating cached predicates: %s" % preds)
time_caching_start = get_ion_ts()
for pred in preds:
log.debug(" - %s", pred)
self.RR2.cache_predicate(pred)
time_caching_stop = get_ion_ts()
total_time = int(time_caching_stop) - int(time_caching_start)
log.info("Cached %s predicates in %s seconds", len(preds), total_time / 1000.0)
def _update_cached_resources(self):
# cache some resources for in-memory lookups
rsrcs = self._resources_to_cache()
log.debug("updating cached resources: %s" % rsrcs)
time_caching_start = get_ion_ts()
for r in rsrcs:
log.debug(" - %s", r)
self.RR2.cache_resources(r)
time_caching_stop = get_ion_ts()
total_time = int(time_caching_stop) - int(time_caching_start)
log.info("Cached %s resource types in %s seconds", len(rsrcs), total_time / 1000.0)
def _clear_caches(self):
log.warn("Clearing caches")
for r in self._resources_to_cache():
self.RR2.clear_cached_resource(r)
for p in self._predicates_to_cache():
self.RR2.clear_cached_predicate(p)
def _lookup_means(self):
"""
return a dict indicating how various related resources will be looked up
The dict is keyed on association type:
PRED.hasAgentInstance -> device type
PRED.hasModel -> model type
PRED.hasAgentDefinition -> agent type
"""
raise NotImplementedError("Extender of class must implement this")
def _augment_dict(self, title, basedict, newitems):
for k, v in newitems.iteritems():
if k in basedict:
prev_v = basedict[k]
# just warn if the new value is different
if v != prev_v:
log.warn("Overwriting %s[%s] of '%s' with '%s'", title, k, prev_v, v)
else:
log.debug("Overwriting %s[%s] with same value already assigned '%s'",
title, k, v)
basedict[k] = v
def _check_associations(self):
assert self.agent_instance_obj
#.........这里部分代码省略.........