def process_exit_surveys(): """Exit survey handling. * Collect new exit survey results. * Save results to our metrics table. * Add new emails collected to the exit survey. """ _process_exit_survey_results() # Get the email addresses from two days ago and add them to the survey # campaign (skip this on stage). if settings.STAGE: # Only run this on prod, it doesn't need to be running multiple times # from different places. return startdate = date.today() - timedelta(days=2) enddate = date.today() - timedelta(days=1) for survey in SURVEYS.keys(): if 'email_collection_survey_id' not in SURVEYS[survey]: # Some surveys don't have email collection on the site # (the askers survey, for example). continue emails = get_email_addresses(survey, startdate, enddate) for email in emails: add_email_to_campaign(survey, email) statsd.gauge('survey.{0}'.format(survey), len(emails))
def process_exit_surveys(): """Exit survey handling. * Collect new exit survey results. * Save results to our metrics table. * Add new emails collected to the exit survey. """ _process_exit_survey_results() # Get the email addresses from 4-5 hours ago and add them to the survey # campaign (skip this on stage). # The cron associated with this process is set to run every hour, # with the intent of providing a 4-5 hour wait period between when a # visitor enters their email address and is then sent a follow-up # survey. # The range here is set between 4 and 8 hours to be sure no emails are # missed should a particular cron run be skipped (e.g. during a deployment) startdatetime = datetime.now() - timedelta(hours=8) enddatetime = datetime.now() - timedelta(hours=4) for survey in SURVEYS.keys(): if not SURVEYS[survey][ 'active'] or 'email_collection_survey_id' not in SURVEYS[ survey]: # Some surveys don't have email collection on the site # (the askers survey, for example). continue emails = get_email_addresses(survey, startdatetime, enddatetime) for email in emails: add_email_to_campaign(survey, email) statsd.gauge('survey.{0}'.format(survey), len(emails))
def process_exit_surveys(): """Exit survey handling. * Collect new exit survey results. * Save results to our metrics table. * Add new emails collected to the exit survey. """ _process_exit_survey_results() # Get the email addresses from two days ago and add them to the survey # campaign (skip this on stage). if settings.STAGE: # Only run this on prod, it doesn't need to be running multiple times # from different places. print ('Skipped email address processing in process_exit_surveys(). ' 'Set settings.STAGE to False to run it for real.') return startdate = date.today() - timedelta(days=2) enddate = date.today() - timedelta(days=1) for survey in SURVEYS.keys(): emails = get_email_addresses(survey, startdate, enddate) for email in emails: add_email_to_campaign(survey, email) print '%s emails processed for %s...' % (len(emails), survey)
def handle(self, **options): """ * Collect new exit survey results. * Save results to our metrics table. * Add new emails collected to the exit survey. """ utils._process_exit_survey_results() # Get the email addresses from 4-5 hours ago and add them to the survey # campaign (skip this on stage). # The cron associated with this process is set to run every hour, # with the intent of providing a 4-5 hour wait period between when a # visitor enters their email address and is then sent a follow-up # survey. # The range here is set between 4 and 8 hours to be sure no emails are # missed should a particular cron run be skipped (e.g. during a deployment) startdatetime = datetime.now() - timedelta(hours=8) enddatetime = datetime.now() - timedelta(hours=4) for survey in SURVEYS.keys(): if ( not SURVEYS[survey]["active"] or "email_collection_survey_id" not in SURVEYS[survey] ): # Some surveys don't have email collection on the site # (the askers survey, for example). continue emails = get_email_addresses(survey, startdatetime, enddatetime) for email in emails: add_email_to_campaign(survey, email) statsd.gauge("survey.{0}".format(survey), len(emails))
def process_exit_surveys(): """Exit survey handling. * Collect new exit survey results. * Save results to our metrics table. * Add new emails collected to the exit survey. """ _process_exit_survey_results() # Get the email addresses from two days ago and add them to the survey # campaign (skip this on stage). if settings.STAGE: # Only run this on prod, it doesn't need to be running multiple times # from different places. print( 'Skipped email address processing in process_exit_surveys(). ' 'Set settings.STAGE to False to run it for real.') return startdate = date.today() - timedelta(days=2) enddate = date.today() - timedelta(days=1) for survey in SURVEYS.keys(): emails = get_email_addresses(survey, startdate, enddate) for email in emails: add_email_to_campaign(survey, email) print '%s emails processed for %s...' % (len(emails), survey)