本文整理汇总了Python中lib.cuckoo.core.database.Database.processing_get_task方法的典型用法代码示例。如果您正苦于以下问题:Python Database.processing_get_task方法的具体用法?Python Database.processing_get_task怎么用?Python Database.processing_get_task使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lib.cuckoo.core.database.Database
的用法示例。
在下文中一共展示了Database.processing_get_task方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: instance
# 需要导入模块: from lib.cuckoo.core.database import Database [as 别名]
# 或者: from lib.cuckoo.core.database.Database import processing_get_task [as 别名]
def instance(instance):
maxcount = cfg.cuckoo.max_analysis_count
count = 0
db = Database()
# There's a good chance MySQL also works, though.
if db.engine.name != "postgresql":
sys.exit("Due to SQL limitations utils/process2.py currently only "
"supports PostgreSQL.")
try:
while not maxcount or count != maxcount:
task_id = db.processing_get_task(instance)
# Wait a small while before trying to fetch a new task.
if task_id is None:
time.sleep(1)
continue
task = db.view_task(task_id)
log.info("Task #%d: reporting task", task.id)
if task.category == "file":
sample = db.view_sample(task.sample_id)
copy_path = os.path.join(CUCKOO_ROOT, "storage",
"binaries", sample.sha256)
else:
copy_path = None
try:
process(task.target, copy_path, task=task.to_dict(),
report=True, auto=True)
db.set_status(task.id, TASK_REPORTED)
except Exception as e:
log.exception("Task #%d: error reporting: %s", task.id, e)
db.set_status(task.id, TASK_FAILED_PROCESSING)
except Exception as e:
log.exception("Caught unknown exception: %s", e)