bench_get_messages_avec_2_conversations/0
]).
-include("../include/euphorik_bd.hrl").
-
+\r
+% les intervalles en seconde min en max entre deux postes de message d'un utilisateur\r
+% le temps d'attente est choisi au hasard entre ces deux valeurs\r
+-define(INTERVALLE_MIN, 2).\r
+-define(INTERVALLE_MAX, 5).
% N est le nombre d'utilisateur
% M est le nombre de message que chaque utilisateur va poster
% tire N element distinct parmis la liste L proposée
tire_element_rand(N, L) when N =< length(L) ->
- tire_element_rand(N, L, []).
+ tire_element_rand(N, L, []);
+tire_element_rand(_, _) ->
+ [].
tire_element_rand(0, _, Elements) -> Elements;
tire_element_rand(N, L, Elements) ->
E = lists:nth(random:uniform(length(L)), L),
loop(User_id, 0) ->
io:format("~p a fini~n", [User_id]);
loop(User_id, M) ->
- % attend un temp aléatoire compris entre 1 sec et 5 sec
- timer:sleep(1000 * random:uniform(5)),
+ % attend un temp aléatoire compris entre INTERVALLE_MIN sec et INTERVALLE_MAX sec
+ timer:sleep(1000 * (random:uniform(?INTERVALLE_MAX - ?INTERVALLE_MIN + 1) + ?INTERVALLE_MIN - 1)),
% poste un message aléatoire par une personne aléatoire répondant à des messages aléatoires
- {Message, Repond_a} = {message_rand(), messages_id_rand()},
+ {Message, Repond_a} = {message_rand(), messages_id_rand()},\r
+ %{Message, Repond_a} = {"blablablablablabla", []},
io:format("~p poste ~p et repond a ~w~n", [User_id, Message, Repond_a]),
- euphorik_bd:nouveau_message(Message, User_id, Repond_a),
- loop(User_id, M - 1).
+ case euphorik_bd:nouveau_message(Message, User_id, Repond_a) of
+ {erreur, E} ->
+ io:format("~p : erreur : ~p~n", [User_id, E]),
+ loop(User_id, M);
+ _ ->
+ loop(User_id, M - 1)
+ end.
+
\ No newline at end of file