def run(self): now = utcnow() self.log_msg = 'Expiry Time: {}.'.format(now) logger.info('{} Starting to remove expired content at.'.format( self.log_msg)) lock_name = get_lock_id('archive', 'remove_expired') if not lock(lock_name, expire=1800): logger.info( '{} Remove expired content task is already running.'.format( self.log_msg)) return logger.info('{} Removing expired content for expiry.'.format( self.log_msg)) # all functions should be called, even the first one throw exception, # so they are wrapped with log_exeption self._remove_expired_publish_queue_items(now) self._remove_expired_items(now, lock_name) self._remove_expired_archived_items(now, lock_name) unlock(lock_name) push_notification('content:expired') logger.info('{} Completed remove expired content.'.format( self.log_msg)) remove_locks()
def run(self): now = utcnow() self.log_msg = 'Delete Spiked Items Time: {}.'.format(now) logger.info('{} Starting to delete spiked items at.'.format( self.log_msg)) expire_interval = app.config.get('PLANNING_DELETE_SPIKED_MINUTES', 0) if expire_interval == 0: logger.info( '{} PLANNING_DELETE_SPIKED_MINUTES=0, not spiking any items') return lock_name = get_lock_id('planning', 'delete_spiked') if not lock(lock_name, expire=610): logger.info( '{} Delete spiked items task is already running'.format( self.log_msg)) return expiry_datetime = now - timedelta(minutes=expire_interval) try: self._delete_spiked_events(expiry_datetime) except Exception as e: logger.exception(e) try: self._delete_spiked_planning(expiry_datetime) except Exception as e: logger.exception(e) unlock(lock_name) logger.info('{} Completed deleting spiked items.'.format(self.log_msg)) remove_locks()
def run(self, immediate=False): self.log_msg = 'Monitoring Scheduled Alerts: {}'.format(utcnow()) logger.info('{} Starting to send alerts.'.format(self.log_msg)) lock_name = get_lock_id( 'newsroom', 'monitoring_{0}'.format( 'scheduled' if not immediate else 'immediate')) if not lock(lock_name, expire=610): logger.error('{} Job already running'.format(self.log_msg)) return try: now_local = utc_to_local(app.config['DEFAULT_TIMEZONE'], utcnow()) app.config['SERVER_NAME'] = urlparse( app.config['CLIENT_URL']).netloc or None celery.conf['SERVER_NAME'] = app.config['SERVER_NAME'] now_to_minute = now_local.replace(second=0, microsecond=0) if immediate: self.immediate_worker(now_to_minute) else: self.scheduled_worker(now_to_minute) except Exception as e: logger.exception(e) unlock(lock_name) remove_locks() logger.info('{} Completed sending Monitoring Scheduled Alerts.'.format( self.log_msg))
def run(self): now = utcnow() self.log_msg = 'Expiry Time: {}.'.format(now) logger.info('{} Starting to remove expired content at.'.format(self.log_msg)) expire_interval = app.config.get('PLANNING_EXPIRY_MINUTES', 0) if expire_interval == 0: logger.info('{} PLANNING_EXPIRY_MINUTES=0, not flagging items as expired') return lock_name = get_lock_id('planning', 'flag_expired') if not lock(lock_name, expire=610): logger.info('{} Flag expired items task is already running'.format(self.log_msg)) return expiry_datetime = now - timedelta(minutes=expire_interval) try: self._flag_expired_events(expiry_datetime) except Exception as e: logger.exception(e) try: self._flag_expired_planning(expiry_datetime) except Exception as e: logger.exception(e) unlock(lock_name) logger.info('{} Completed flagging expired items.'.format(self.log_msg)) remove_locks() logger.info('{} Starting to remove expired planning versions.'.format(self.log_msg)) self._remove_expired_published_planning() logger.info('{} Completed removing expired planning versions.'.format(self.log_msg))
def send_alerts(self): self.log_msg = 'Company Expiry Alerts: {}'.format(utcnow()) logger.info('{} Starting to send alerts.'.format(self.log_msg)) lock_name = get_lock_id('newsroom', 'company_expiry') if not lock(lock_name, expire=610): logger.error('{} Job already running'.format(self.log_msg)) return try: self.worker() except Exception as e: logger.exception(e) unlock(lock_name) remove_locks() logger.info('{} Completed sending alerts.'.format(self.log_msg))
def run(self): now = utcnow() self.log_msg = 'Delete Marked Assignments Time: {}.'.format(now) logger.info('{} Starting to delete marked assignments at.'.format(self.log_msg)) lock_name = get_lock_id('planning', 'delete_assignments') if not lock(lock_name, expire=610): logger.info('{} Delete marked assignments task is already running'.format(self.log_msg)) return try: self._delete_marked_assignments() except Exception as e: logger.exception(e) unlock(lock_name) logger.info('{} Completed deleting marked assignments.'.format(self.log_msg)) remove_locks()
def run(self): now = utcnow() self.log_msg = 'Expiry Time: {}.'.format(now) logger.info('{} Starting to remove expired content at.'.format(self.log_msg)) lock_name = get_lock_id('archive', 'remove_expired') if not lock(lock_name, expire=610): logger.info('{} Remove expired content task is already running.'.format(self.log_msg)) return try: logger.info('{} Removing expired content for expiry.'.format(self.log_msg)) self._remove_expired_items(now) finally: unlock(lock_name) push_notification('content:expired') logger.info('{} Completed remove expired content.'.format(self.log_msg)) remove_locks()
def run(self): now = utcnow() self.log_msg = 'Expiry Time: {}.'.format(now) logger.info('{} Starting to remove expired content at.'.format(self.log_msg)) lock_name = get_lock_id('archive', 'remove_expired') if not lock(lock_name, expire=610): logger.info('{} Remove expired content task is already running.'.format(self.log_msg)) return logger.info('{} Removing expired content for expiry.'.format(self.log_msg)) # both functions should be called, even the first one throw exception, # so they are wrapped with log_exeption self._remove_expired_publish_queue_items() self._remove_expired_items(now) unlock(lock_name) push_notification('content:expired') logger.info('{} Completed remove expired content.'.format(self.log_msg)) remove_locks()
def run(self): now = utcnow() self.log_msg = 'Expiry Time: {}.'.format(now) logger.info('{} Starting to remove expired content at.'.format( self.log_msg)) lock_name = get_lock_id('archive', 'remove_expired') if not lock(lock_name, expire=610): logger.info( '{} Remove expired content task is already running.'.format( self.log_msg)) return try: logger.info('{} Removing expired content for expiry.'.format( self.log_msg)) self._remove_expired_items(now) finally: unlock(lock_name) push_notification('content:expired') logger.info('{} Completed remove expired content.'.format( self.log_msg)) remove_locks()