Example #1
0
    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()
Example #2
0
    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()
Example #3
0
    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))
Example #4
0
    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()
Example #7
0
    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()
Example #9
0
    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()