def publishing(self, service):
        """
            the purpose of this tasks is to get the data from the cache
            then publish them
            :param service: service object where we will publish
            :type service: object
        """
        # flag to know if we have to update
        to_update = False
        # flag to get the status of a service
        status = False
        # provider - the service that offer data
        # check if the service has already been triggered
        # if date_triggered is None, then it's the first run
        if service.date_triggered is None:
            logger.debug("first run {}".format(service))
            to_update = True
            status = True
        # run run run
        data = self.provider(service)
        count_new_data = len(data) if data else 0
        if count_new_data > 0:
            to_update, status = self.consumer(service, data, to_update, status)
            # let's log
        self.log_update(service, to_update, status, count_new_data)
        # let's update
        if to_update and status:
            self.update_trigger(service)
the purpose of this tasks is to get the data from the cache
            then publish them
            :param service: service object where we will publish
            :type service: object