def remove_expired_from_elastic(ingest_collection): """Remove expired items from elastic which shouldn't be there anymore - expired before previous run.""" ingest = superdesk.get_resource_service(ingest_collection) items = ingest.search({'filter': {'range': {'expiry': {'lt': 'now-5m/m'}}}}) if items.count(): logger.warning('there are expired items in elastic (%d)' % (items.count(), )) for item in items: logger.debug('doc only in elastic item=%s' % (item, )) ingest.remove_from_search(item)
def remove_expired_from_elastic(ingest_collection): """Remove expired items from elastic which shouldn't be there anymore - expired before previous run.""" ingest = superdesk.get_resource_service(ingest_collection) items = ingest.search({'filter': {'range': {'expiry': {'lt': 'now-5m/m'}}}}) if items.count(): logger.warning('there are expired items in elastic (%d)' % (items.count(), )) for item in items: logger.debug('doc only in elastic item=%s' % (item, )) ingest.remove_from_search(item.get('_id'))
def unlock(task, host=None, remove=False): """Release lock on given task. Lock can be only released by host which locked it. :param task: task name :param host: current host id :param remove: remove lock when unlocking """ if not host: host = get_host() logger.debug('releasing lock task=%s host=%s' % (task, host)) return _lock.release(task, host, remove)
def lock(task, host=None, expire=300, timeout=None): """Try to lock task. :param task: task name :param host: current host id :param expire: lock ttl in seconds :param timeout: how long should it wait if task is locked """ if not host: host = get_host() got_lock = _lock.lock(task, host, expire=expire, timeout=timeout) if got_lock: logger.debug('got lock task=%s host=%s' % (task, host)) else: logger.debug('task locked already task=%s host=%s' % (task, host)) return got_lock
def remove_expired_from_elastic(ingest_collection): """Remove expired items from elastic which shouldn't be there anymore - expired before previous run.""" ingest = superdesk.get_resource_service(ingest_collection) items = ingest.search( {"filter": { "range": { "expiry": { "lt": "now-5m/m" } } }}) if items.count(): logger.warning("there are expired items in elastic (%d)" % (items.count(), )) for item in items: logger.debug("doc only in elastic item=%s" % (item, )) ingest.remove_from_search(item)