Was ist der beste Weg in Elixier, um einen Vordergrundprozess zu erstellen, der in jeder gegebenen Zeit ankreuzen?Wie erstelle ich einen Event-Emitter mit Elixier, der otp-Weg
Mein Hauptproblem ist, dass ein Ansatz wie:
defmoulde Ticker do
def tick do
do_something()
:timer.sleep(1000)
tick
end
end
Werke, sondern durch Design ist falsch. Es tippt definitiv nicht jede Sekunde, aber jede Sekunde PLUS die Zeit für do_something() zu vervollständigen. Ich könnte einen Prozess erstellen, um das "Etwas" zu behandeln, aber es gibt immer noch eine kleine Verzögerung.
Ich versuche auch, eine Mix-App zu bauen, es gibt einige GenServer beteiligt, und ein Haupt Vordergrundprozess (der ich hier frage), der die Server alle x Sekunden aufrufen sollte. Gibt es eine Möglichkeit, dies zu tun?
Ich interessiere mich für die mögliche Zeitdrift. Wie würde ich jede Zeitverschiebung vermeiden? –
'apply_interval' sollte ziemlich anständig sein, aber die Dokumente geben nur an, dass" die Timeouts nicht genau sind, aber mindestens so lang sind wie angefordert ". –