本文整理汇总了Python中socorrolib.lib.util.DotDict.processor方法的典型用法代码示例。如果您正苦于以下问题:Python DotDict.processor方法的具体用法?Python DotDict.processor怎么用?Python DotDict.processor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类socorrolib.lib.util.DotDict
的用法示例。
在下文中一共展示了DotDict.processor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: process_crash
# 需要导入模块: from socorrolib.lib.util import DotDict [as 别名]
# 或者: from socorrolib.lib.util.DotDict import processor [as 别名]
def process_crash(self, raw_crash, raw_dumps, processed_crash):
"""Take a raw_crash and its associated raw_dumps and return a
processed_crash.
"""
# processor_meta_data will be used to ferry "inside information" to
# transformation rules. Sometimes rules need a bit more extra
# information about the transformation process itself.
processor_meta_data = DotDict()
processor_meta_data.processor_notes = [
self.config.processor_name,
self.__class__.__name__
]
processor_meta_data.quit_check = self.quit_check
processor_meta_data.processor = self
processor_meta_data.config = self.config
if "processor_notes" in processed_crash:
original_processor_notes = [
x.strip() for x in processed_crash.processor_notes.split(";")
]
processor_meta_data.processor_notes.append(
"earlier processing: %s" % processed_crash.get(
"started_datetime",
'Unknown Date'
)
)
else:
original_processor_notes = []
processed_crash.success = False
processed_crash.started_datetime = utc_now()
# for backwards compatibility:
processed_crash.startedDateTime = processed_crash.started_datetime
processed_crash.signature = 'EMPTY: crash failed to process'
crash_id = raw_crash.get('uuid', 'unknown')
try:
# quit_check calls ought to be scattered around the code to allow
# the processor to be responsive to requests to shut down.
self.quit_check()
processor_meta_data.started_timestamp = self._log_job_start(
crash_id
)
# apply transformations
# step through each of the rule sets to apply the rules.
for a_rule_set_name, a_rule_set in self.rule_system.iteritems():
# for each rule set, invoke the 'act' method - this method
# will be the method specified in fourth element of the
# rule set configuration list.
a_rule_set.act(
raw_crash,
raw_dumps,
processed_crash,
processor_meta_data
)
self.quit_check()
# the crash made it through the processor rules with no exceptions
# raised, call it a success.
processed_crash.success = True
except Exception, x:
self.config.logger.warning(
'Error while processing %s: %s',
crash_id,
str(x),
exc_info=True
)
processor_meta_data.processor_notes.append(
'unrecoverable processor error: %s' % x
)