def __listener_iteration_job__(self, *args, **kwargs):
        """
        Execute a complete listener iteration. The iteration consists on:

        1. Query data and fetch configured metrics
        2. Check search results and metrics with provided condition
        3. Execute the action if condition is satisfied

        """
        current_api = singleton.active_api()
        try:
            dataset = current_api.datasets.find_by_name(self.dataset)
            self._LOGGER.debug(f"Found listener dataset {dataset.name}")
        except NotFoundApiError:
            self._LOGGER.warning(f"Not found dataset <{self.dataset}>")
            return

        ctx = RGListenerContext(
            listener=self,
            query_params=self.query_params,
            metrics=self.__compute_metrics__(current_api, dataset, query=self.formatted_query),
        )
        if self.condition is None:
            self._LOGGER.debug("No condition found! Running action...")
            return self.__run_action__(ctx, *args, **kwargs)

        search_results = current_api.search.search_records(
            name=self.dataset,
            task=dataset.task,
            size=0,
            query_text=self.formatted_query,
        )

        ctx.search = Search(
            total=search_results.total,
            query_params=copy.deepcopy(ctx.query_params),
        )
        condition_args = [ctx.search]
        if self.metrics:
            condition_args.append(ctx.metrics)

        self._LOGGER.debug(f"Evaluate condition with arguments: {condition_args}")
        if self.condition(*condition_args):
            self._LOGGER.debug("Condition passed! Running action...")
            return self.__run_action__(ctx, *args, **kwargs)

        Execute a complete listener iteration. The iteration consists on:

        1. Query data and fetch configured metrics
        2. Check search results and metrics with provided condition
        3. Execute the action if condition is satisfied

        
argilla-v1/src/argilla_v1/listeners/listener.py