X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_daemon.erl;h=190458e203d977bbb4d7d92a3164b2e657616671;hp=274a2c2ee0bc86be6ddb391bbda4f383db8a13af;hb=5d9992368bb386d2e606ae037c5478fe10ac70e8;hpb=accd9081eade01ce5ebf6b54cd6f29f55f3641a7
diff --git a/modules/erl/euphorik_daemon.erl b/modules/erl/euphorik_daemon.erl
index 274a2c2..190458e 100755
--- a/modules/erl/euphorik_daemon.erl
+++ b/modules/erl/euphorik_daemon.erl
@@ -15,65 +15,47 @@
%
% 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
+%
+% Module tournant en background s'occupant periodiquement de certaines tâches :
% - rechargement des modules lors d'une mise en production
-% Date : 05.11.2007
-% @author G.Burri
--module(euphorik_daemon).
--export([start/1, reload_euphorik/0, loop/0]).
--include("../include/euphorik_defines.hrl").
+-module(euphorik_daemon).
+-author("Greg Burri ").
+-export([start/1, reload_euphorik/0, loop/0]).
+-include("../include/euphorik_defines.hrl").
+
-
-% Démarre le démon
+% Démarre le démon
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)
+ loop().
+
+
+loop() ->
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)
- end,
- [
- euphorik_common,
- euphorik_minichat_conversation,
- euphorik_protocole,
- euphorik_requests,
- euphorik_bd,
- euphorik_bd_update,
- euphorik_daemon
- ]
+ 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) ->
+ c:l(M) % (purge & load)
+ end,
+ [
+ euphorik_common,
+ euphorik_minichat_conversation,
+ euphorik_protocole,
+ euphorik_requests,
+ euphorik_bd,
+ euphorik_bd_admin,
+ euphorik_daemon
+ ]
),
% changement du code du daemon
- euphorik_daemon ! switch.
-
\ No newline at end of file
+ euphorik_daemon ! switch,
+ ok.