[erlang-questions] Restricting number of executions per second

mats cronqvist <>
Wed Dec 3 15:20:32 CET 2008


"Ahmed Ali" <> writes:

> Hi All,
>
> I want to run a function in not more than a specific numbers of times
> per second (e.g. 3 times per second). The function is part of a
> gen_server process (i.e. called using gen_server:call/2). What's the
> best way to do this?

  this ought to be pretty effective.
  it's just pseudo-code of course.

loop(Sec,Count) ->
  case Count < 3 of
    true -> func();
    false-> ok
  end,
  case now() of
    {_,Sec,_} -> loop(Sec,Count+1);
    {_,NSec,_}-> loop(NSec,0)
  end.



More information about the erlang-questions mailing list