Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. defmodule KinesisServer.Worker do
  2. use GenServer
  3. alias KinesisServer.Writer
  4.  
  5. def start_link(opts \\ []) do
  6. GenServer.start_link(__MODULE__, Writer.new(opts))
  7. end
  8.  
  9. @impl true
  10. def init(init_arg) do
  11. Process.flag(:trap_exit, true)
  12. {:ok, init_arg}
  13. end
  14.  
  15. def write(record) do
  16. :poolboy.transaction(:kinesis_writer_pool, fn pid ->
  17. GenServer.cast(pid, {:write, record})
  18. end)
  19. end
  20.  
  21. @impl true
  22. def handle_cast({:write, record}, state) do
  23. {:noreply, Writer.write(state, record)}
  24. end
  25.  
  26. @impl true
  27. def terminate(reason, state) do
  28. Writer.flush(state)
  29. :shutdown
  30. end
  31. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement