sanswork
Hi,
I’m trying to send a message automatically to all users subscribed to a specific channel every couple of seconds(it’s a status update type message). I’ve gotten everything working with a handle_info which I can test by setting up a :timer.send_interval(5_000, :updates) in the join function of the channel module. That works fine but with each user that joins another timer starts so its not ideal for actual usage. Any idea how to start a timer like that outside of the channel?
I’ve tried creating a function in the channel called start_updates which just has that timer line in it then calling it from lib/myapp.ex in the start function with Myapp.UpdateChannel.start_updates() and though it does get called the timer inside doesn’t appear to work.
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #ai
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #metaprogramming










Showing Posts 1 to 2- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
NobbZ
I’m not quite sure if it really helps you, but there is
quantumavailable at hex.pm, perhaps it may help you.A quick and dirty solution which comes to my mind using it, were to have a function which connects to the channel, sends the message and leaves the channel again.
A much saner way, were to start a GenServer (or similar) with your app, which does connect to the channel and gets a message from
quantumand on this message it gets translated into the channel message and then send. But I’m not quite sure, how GenServer-messages and Channel-messages behave alltogether.sanswork
Thanks for the suggestion NobbZ
Someone on Slack linked http://stackoverflow.com/questions/32085258/how-to-run-some-code-every-few-hours-in-phoenix-framework from which I got the following solution using a GenServer
I created a new file in /lib/myapp/update_users.ex
Then added
into lib/myapp.ex in the start/2 method and it seems to work a charm