X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_daemon.erl;h=190458e203d977bbb4d7d92a3164b2e657616671;hp=95ccff124d031a37244a409d3731653ad2db7a5d;hb=4a6c575807a90370c0069b688026b10102e1ce10;hpb=5b696161ae91e007fc2e9bd455a14f4363772131
diff --git a/modules/erl/euphorik_daemon.erl b/modules/erl/euphorik_daemon.erl
index 95ccff1..190458e 100755
--- a/modules/erl/euphorik_daemon.erl
+++ b/modules/erl/euphorik_daemon.erl
@@ -15,15 +15,13 @@
%
% You should have received a copy of the GNU General Public License
% along with Euphorik. If not, see .
-%
+%
% Module tournant en background s'occupant periodiquement de certaines tâches :
-% - sélection du prochain troll chaque semaine
% - rechargement des modules lors d'une mise en production
-% Date : 05.11.2007
-% @author G.Burri
-module(euphorik_daemon).
+-author("Greg Burri ").
-export([start/1, reload_euphorik/0, loop/0]).
-include("../include/euphorik_defines.hrl").
@@ -32,37 +30,21 @@
start(_A) ->
register(euphorik_daemon, self()),
loop().
-
-
+
+
loop() ->
- % on attend une minute de plus pour prevenir une dérive négative (ce qui pourrait engendrer une double élection)
receive
- switch -> % permet de substituer le code du process par un nouveau code, voir reload_euphorik
- euphorik_daemon:loop()
- after 1000 * (trunc(temps_prochaine_election() + 60)) ->
- euphorik_bd:elire_troll(),
+ switch -> % To reload a new code, see 'reload_euphorik/0'.
euphorik_daemon:loop()
end.
-
-% Renvoie le nombre de seconde qu'il reste jusque au prochain lundi à l'heure donnée (l'heure est sur 24heures)
-% 86400 est le nombre de seconde dans un jour
-temps_prochaine_election() ->
- {Date, {H,M,S}} = calendar:local_time(),
- Delta = (?JOUR_ELECTION_TROLL - 1) * 86400 + ?HEURE_ELECTION_TROLL * 60 * 60
- -((calendar:day_of_the_week(Date) - 1) * 86400 + H * 60 * 60 + M * 60 + S),
- % attention au cas où deux dates (maintenant et la date d'élection) ne se trouvent pas dans la même semaine.
- if Delta =< 0 -> Delta + 7 * 86400; true -> Delta end.
-
-
% Recharge tous les modules euphorik.
% Appelé lors d'une mise en prod.
% TODO : récupérer les noms à partir des .beam dans /modules/ebin
reload_euphorik() ->
lists:foreach(
fun(M) ->
- code:purge(M),
- code:load_file(M)
+ c:l(M) % (purge & load)
end,
[
euphorik_common,
@@ -77,4 +59,3 @@ reload_euphorik() ->
% changement du code du daemon
euphorik_daemon ! switch,
ok.
-
\ No newline at end of file