'This method is responsible for iterating over self.watched and handling
state changes and updating self.watched with a new list of watched job
states. Subclasses can opt to override this directly (as older job runners will
initially) or just override check_watched_item and allow the list processing to
reuse the logic here.'

def check_watched_items(self):

    new_watched = []
    for async_job_state in self.watched:
        new_async_job_state = self.check_watched_item(async_job_state)
        if new_async_job_state:
            new_watched.append(new_async_job_state)
    self.watched = new_watched
