Notify controller action method from other independent handler within specific time

I have a situation where I need to wait for response from device(using mqtt broker which doesnt matter in current questions context).

Whenever I get an API call on one specific endpoint

  • I need to wait(2-5 seconds depending upon the need) for response from device on the other handler(mqtt handler => https://github.com/gausby/tortoise)
  • this handler needs to notify controller action method somehow I got this msg(if handler received msg withing that time) for the particular device id
  • if device matches and controller action method get notified we send back success response otherwise we send failure response
  • Any msg received before or after wait time doesnt matter(just consider it unsubscribed)

I am not really sure about whats the best way to achieve above requirement. any help is welcome, thanks

look at https://hexdocs.pm/elixir/Task.html - most likely https://hexdocs.pm/elixir/Task.html#yield/2

1 Like