Skip to content

Instantly share code, notes, and snippets.

@jesteracer
Created March 25, 2015 14:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jesteracer/5202e7b83fb3730ee857 to your computer and use it in GitHub Desktop.
Save jesteracer/5202e7b83fb3730ee857 to your computer and use it in GitHub Desktop.
gen
defmodule Themost.RateWorker do
use GenServer
def start_link do
:gen_server.start_link({ :local, :NAME }, __MODULE__, ARG, [])
end
def init do
IO.puts "Init"
:timer.send_interval(:crowl, 15000)
end
def handle_info(:crawl, _) do
IO.puts "Crawl"
end
end
@chrismccord
Copy link

defmodule Themost.RateWorker do
  use GenServer

  @interval 15_000

  def start_link(url) do
    :gen_server.start_link(__MODULE__, url, [])
  end

  def init(url) do
    IO.puts "Init #{url}"
    :timer.send_interval(:crawl, @interval)
    {:ok, %{url: url}}
  end

  def handle_info(:crawl, state) do
    IO.puts "Crawl #{state.url}"
    {:noreply, state}
  end
end

@lexmag
Copy link

lexmag commented Mar 25, 2015

It can be this as well:

defmodule Themost.RateWorker do
  use GenServer

  @interval 15_000

  def start_link(url) do
    GenServer.start_link(__MODULE__, url)
  end

  def init(url) do
    IO.puts "Init #{url}"
    {:ok, %{url: url}, 0}
  end

  def handle_info(:timeout, state) do
    IO.puts "Crawl #{state.url}"
    {:noreply, state, @interval}
  end
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment