本文整理汇总了Python中socorro.lib.util.DotDict.processor方法的典型用法代码示例。如果您正苦于以下问题:Python DotDict.processor方法的具体用法?Python DotDict.processor怎么用?Python DotDict.processor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类socorro.lib.util.DotDict
的用法示例。
在下文中一共展示了DotDict.processor方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: process_crash
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.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)
示例2: convert_raw_crash_to_processed_crash
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.lib.util.DotDict import processor [as 别名]
def convert_raw_crash_to_processed_crash(self, raw_crash, raw_dumps):
"""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
# create the empty processed crash
processed_crash = DotDict()
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 in self.rule_system:
# 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
)
示例3: process_crash
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.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['uuid']
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()
start_time = self.config.logger.info(
"starting transform for crash: %s",
crash_id
)
processor_meta_data.started_timestamp = start_time
# apply_all_rules
for rule in self.rules:
rule.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 as exception:
self.config.logger.warning(
'Error while processing %s: %s',
crash_id,
str(exception),
exc_info=True
)
processor_meta_data.processor_notes.append(
'unrecoverable processor error: %s' % exception
)
# the processor notes are in the form of a list. Join them all
# together to make a single string
processor_meta_data.processor_notes.extend(original_processor_notes)
processed_crash.processor_notes = '; '.join(
processor_meta_data.processor_notes
)
completed_datetime = utc_now()
processed_crash.completed_datetime = completed_datetime
# for backwards compatibility:
processed_crash.completeddatetime = completed_datetime
self.config.logger.info(
"finishing %s transform for crash: %s",
'successful' if processed_crash.success else 'failed',
crash_id
)
return processed_crash