コード例 #1
0
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'
コード例 #2
0
ファイル: tasks.py プロジェクト: pombredanne/lizard-damage
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'