I have an OTP application with an event that happens periodically. There are several actors that want to do stuff in response to the event. The stuff each actor does is a function of its own state, but otherwise they're identical.
My problem is with how I go about incorporating this setup into a supervision tree. I have a gen_event manager with each actor being an event handler. This would work well if it weren't for the fact that gen_event supervision is weird. Once my first handler is add_sup_handler
'd the rest fail with already_started
and my gen_server that's acting as a supervisor for the event handlers dies.
So what should I do here? I'm starting to think I should just write my own event manager that can keep track of all my actors and their state.
Handler is the name of the callback module
Module
or a tuple{Module,Id}
, whereId
is any term. The{Module,Id}
representation makes it possible to identify a specific event handler when there are several event handlers using the same callback module.