def calculate_benefit( benefit_scenario_id, username=None, taskname=None, loglevel=20): start_dt = datetime.datetime.now() logger = logging.getLogger(taskname) logger.info("calculate benefit") benefit_scenario = BenefitScenario.objects.get(pk=benefit_scenario_id) logger.info( "scenario: %d, %s" % (benefit_scenario.id, str(benefit_scenario))) errors = 0 try: risk.create_benefit_map( benefit_scenario=benefit_scenario, logger=logger, ) except: # For some reason logger.exception does not reach task logging. logger.error('Error creating benefit map.') for exception_line in traceback.format_exc().split('\n'): logger.error(exception_line) errors += 1 # add BenefitScenarioResult objects for display on the map. if errors == 0: logger.info('STATS benefit van %s is klaar in %r' % ( benefit_scenario.email, str(datetime.datetime.now() - start_dt))) logger.info( "creating email task for scenario %d" % benefit_scenario.id) subject = ( 'WaterSchadeSchatter: Resultaten beschikbaar voor scenario %s ' % benefit_scenario.name) emails.send_email_to_task( benefit_scenario.id, 'email_ready_benefit', subject, username=username, scenario_type='benefit', ) logger.info("finished") else: logger.info('STATS benefit van %s is mislukt in %r' % ( benefit_scenario.email, str(datetime.datetime.now() - start_dt))) logger.info("there were errors in scenario %d" % benefit_scenario.id) logger.info("creating email task for error") subject = 'WaterSchadeSchatter: scenario %s heeft fouten' % ( benefit_scenario.name, ) emails.send_email_to_task( benefit_scenario.id, 'email_error', subject, username=username, scenario_type='benefit', ) logger.info("finished with errors") return 'failure'
def calculate_benefit(benefit_scenario_id, username=None, taskname=None, loglevel=20): logger = logging.getLogger(taskname) logger.info("calculate benefit") benefit_scenario = BenefitScenario.objects.get(pk=benefit_scenario_id) logger.info("scenario: %d, %s" % (benefit_scenario.id, str(benefit_scenario))) errors = 0 try: risk.create_benefit_map( benefit_scenario=benefit_scenario, logger=logger, ) except: logger.error('Error creating benefit map.') for exception_line in traceback.format_exc().split('\n'): logger.error(exception_line) errors += 1 # add BenefitScenarioResult objects for display on the map. if errors == 0: logger.info("creating email task for scenario %d" % benefit_scenario.id) subject = 'STOWA Schade Calculator: Resultaten beschikbaar voor scenario %s ' % benefit_scenario.name send_email_to_task( benefit_scenario.id, 'email_ready_benefit', subject, username=username, scenario_type='benefit', ) logger.info("finished") else: logger.info("there were errors in scenario %d" % benefit_scenario.id) logger.info("creating email task for error") subject = 'STOWA Schade Calculator: scenario %s heeft fouten' % ( benefit_scenario.name, ) send_email_to_task( benefit_scenario.id, 'email_error', subject, username=username, scenario_type='benefit', ) #send_email_to_task( #benefit_scenario.id, 'email_error', subject, username=username, #email='*****@*****.**', scenario_type='benefit', #) logger.info("finished with errors") return 'failure'