Simple use of jobs application failing

bengt cean.ebengt@REDACTED
Sat Nov 13 18:12:45 CET 2021


I would like to allow at most 3 processes to call a gen_server at the same time. I could check the message queue length, but why not use jobs ( ?

Jobs is already in use by something I depend on, so it should be working. I test from the (iex) shell. As can be seen below I am making a mistake somewhere. Probably config, so how should I configure to only get 3 of the 5 jobs:ask/1 to be approved and queued? Or I have misunderstood the use, and an explanation of how to achieve the 3 caller limitation would be appreciated.

 :jobs.add_queue(:kalle,  [{:max_size, 3}])
  for _ <- [1,2,3,4,5], do: :jobs.ask(:kalle)
  IO.inspect :jobs.queue_info(:kalle)

   name: :kalle,
   max_size: 3,
   approved: 5,
   queued: 5,
   latest_dispatch: 378734152926266,
   mod: :jobs_queue,
   type: :fifo,
   group: :undefined,
   regulators: [],
   max_time: :undefined,
   check_interval: :infinity,
   oldest_job: :undefined,
   timer: :undefined,
   link_ref: :undefined,
   check_counter: 0,
   empty: false,
   depleted: false,
   waiters: [],
   stateful: :undefined,
   st: {:st, #Reference<0.2285429207.3584425985.10312>},
   producers: []

Best Wishes,

More information about the erlang-questions mailing list