def _do_work_wrapper(self, submission_id): s = Session() submission = s.query(Submission).filter(Submission.id==submission_id).one() try: r = self._do_work(submission) s.expunge(r) self.result_queue.put(r) except Exception as e: logging.error("Got exception : %s"%e) r = Report( module=self.__ModuleName__, short="Got an exception in module : %s"%e, full="", submission=submission ) s.add(r) s.expunge(r) self.result_queue.put(r)