Can you explain to me the case of when finish_workers might be called multiple times? Or why do you think you need the runonce behavior? I might be missing something, though.