def process(self, publisher, user_ids):
        """
        Process profiles and post them
        @publisher object the publisher object to operate on
        @user_ids list of user ids to process in this batch
        """

        # Only process the requested user_ids from the list of all az users
        # as the list is often containing all users, not just the ones we requested
        todo_user_ids = list(set(self.get_az_user_ids()) & set(user_ids))
        todo_users = []
        for u in self.az_users:
            if u["user_id"] in todo_user_ids:
                todo_users.append(u)

        profiles = self.convert_az_users(todo_users)
        logger.info("Processing {} profiles".format(len(profiles)))
        publisher.profiles = profiles

        failures = []
        try:
            failures = publisher.post_all(user_ids=user_ids, create_users=True)
        except Exception as e:
            logger.error("Failed to post_all() profiles. Trace: {}".format(format_exc()))
            raise e

        if len(failures) > 0:
            logger.error("Failed to post {} profiles: {}".format(len(failures), failures))