• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

akira / exq / 16bf7540e38e434e6ed4fadc1f40894960dd12db-PR-500

07 Aug 2025 11:50AM UTC coverage: 90.805% (-1.6%) from 92.382%
16bf7540e38e434e6ed4fadc1f40894960dd12db-PR-500

Pull #500

github

ananthakumaran
Run coveralls on one build only
Pull Request #500: Add ability to snooze job

15 of 15 new or added lines in 2 files covered. (100.0%)

18 existing lines in 13 files now uncovered.

1195 of 1316 relevant lines covered (90.81%)

706.93 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.67
/lib/exq/worker/metadata.ex
1
defmodule Exq.Worker.Metadata do
2
  @moduledoc """
3
  Provides storage functionality for job metadata.
4

5
  The metadata is associated with the worker pid and automatically discarded
6
  when the worker process exits.
7
  """
8

9
  use GenServer
10
  alias Exq.Support.Config
11

12
  def start_link(opts) do
13
    GenServer.start_link(__MODULE__, opts, name: server_name(opts[:name]))
146✔
14
  end
15

16
  def associate(server, pid, value) when is_pid(pid) do
17
    GenServer.call(server, {:associate, pid, value})
1,332✔
18
  end
19

20
  def lookup(server, pid) when is_pid(pid) do
21
    :ets.lookup_element(server, pid, 3)
33✔
22
  end
23

24
  ## ===========================================================
25
  ## GenServer callbacks
26
  ## ===========================================================
27

28
  def init(opts) do
29
    table = :ets.new(server_name(opts[:name]), [:named_table])
146✔
30
    {:ok, table}
31
  end
32

33
  def handle_call({:associate, pid, value}, _from, table) do
34
    ref = Process.monitor(pid)
1,332✔
35
    true = :ets.insert(table, {pid, ref, value})
1,332✔
36
    {:reply, :ok, table}
1,332✔
37
  end
38

39
  def handle_info({:DOWN, ref, _type, pid, _reason}, table) do
40
    [{^pid, ^ref, _}] = :ets.lookup(table, pid)
1,332✔
41
    true = :ets.delete(table, pid)
1,332✔
42
    {:noreply, table}
43
  end
44

UNCOV
45
  def handle_info(_msg, state) do
×
46
    {:noreply, state}
47
  end
48

49
  # Internal Functions
50

51
  def server_name(name) do
52
    name = name || Config.get(:name)
453✔
53
    "#{name}.Worker.Metadata" |> String.to_atom()
453✔
54
  end
55
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc