In my application, I have a supervisor which is responsible for starting up some processes, and as well as a task
defmodule MySupervisor do
def init do
children = [
{ProcessA, []},
{MyTask, []}
]
Supervisor.init(children, strategy: one_for_all
end
In the case of ProcessA crashing, the restart strategy indicates to me that the rest of the children should also be restarted. This to me means MyTask will also be restarted.
In another situation, if MyTask crashes, what happens? I read from https://hexdocs.pm/elixir/Task.html#module-supervised-tasks that Tasks define a child spec :restart is :temporary, meaning it will not be restart even if it crashes. However, this would conflict with the “one_for_all” strategy then? Will all other processes like ProcessA restart? Will MyTask just crash and not restart? What would happen in this situation?