|
1 | 1 | # |
2 | 2 | # This file is part of Astarte. |
3 | 3 | # |
4 | | -# Copyright 2017 Ispirata Srl |
| 4 | +# Copyright 2017 - 2025 SECO Mind Srl |
5 | 5 | # |
6 | 6 | # Licensed under the Apache License, Version 2.0 (the "License"); |
7 | 7 | # you may not use this file except in compliance with the License. |
@@ -51,52 +51,8 @@ defmodule Astarte.DataUpdaterPlant.AMQPDataConsumer do |
51 | 51 | GenServer.start_link(__MODULE__, args, name: get_queue_via_tuple(index)) |
52 | 52 | end |
53 | 53 |
|
54 | | - def ack(pid, delivery_tag) do |
55 | | - Logger.debug("Going to ack #{inspect(delivery_tag)}") |
56 | | - GenServer.call(pid, {:ack, delivery_tag}) |
57 | | - end |
58 | | - |
59 | | - def discard(pid, delivery_tag) do |
60 | | - Logger.debug("Going to discard #{inspect(delivery_tag)}") |
61 | | - GenServer.call(pid, {:discard, delivery_tag}) |
62 | | - end |
63 | | - |
64 | | - def requeue(pid, delivery_tag) do |
65 | | - Logger.debug("Going to requeue #{inspect(delivery_tag)}") |
66 | | - GenServer.call(pid, {:requeue, delivery_tag}) |
67 | | - end |
68 | | - |
69 | | - def start_message_tracker(realm, encoded_device_id) do |
70 | | - with {:ok, via_tuple} <- fetch_queue_via_tuple(realm, encoded_device_id) do |
71 | | - GenServer.call(via_tuple, {:start_message_tracker, realm, encoded_device_id}) |
72 | | - end |
73 | | - end |
74 | | - |
75 | | - def start_data_updater(realm, encoded_device_id, message_tracker) do |
76 | | - with {:ok, via_tuple} <- fetch_queue_via_tuple(realm, encoded_device_id) do |
77 | | - GenServer.call(via_tuple, {:start_data_updater, realm, encoded_device_id, message_tracker}) |
78 | | - end |
79 | | - end |
80 | | - |
81 | 54 | defp get_queue_via_tuple(queue_index) when is_integer(queue_index) do |
82 | | - {:via, Registry, {Registry.AMQPDataConsumer, {:queue_index, queue_index}}} |
83 | | - end |
84 | | - |
85 | | - defp fetch_queue_via_tuple(realm, encoded_device_id) |
86 | | - when is_binary(realm) and is_binary(encoded_device_id) do |
87 | | - # This is the same sharding algorithm used in astarte_vmq_plugin |
88 | | - # Make sure they stay in sync |
89 | | - queue_index = |
90 | | - {realm, encoded_device_id} |
91 | | - |> :erlang.phash2(Config.data_queue_total_count!()) |
92 | | - |
93 | | - if queue_index >= Config.data_queue_range_start!() and |
94 | | - queue_index <= Config.data_queue_range_end!() do |
95 | | - {:ok, get_queue_via_tuple(queue_index)} |
96 | | - else |
97 | | - # This device is handled by a differente DUP instance |
98 | | - {:error, :unhandled_device} |
99 | | - end |
| 55 | + {:via, Horde.Registry, {Registry.AMQPDataConsumer, {:queue_index, queue_index}}} |
100 | 56 | end |
101 | 57 |
|
102 | 58 | # Server callbacks |
@@ -126,16 +82,6 @@ defmodule Astarte.DataUpdaterPlant.AMQPDataConsumer do |
126 | 82 | {:reply, res, state} |
127 | 83 | end |
128 | 84 |
|
129 | | - def handle_call({:start_message_tracker, realm, device_id}, _from, state) do |
130 | | - res = DataUpdater.get_message_tracker(realm, device_id) |
131 | | - {:reply, res, state} |
132 | | - end |
133 | | - |
134 | | - def handle_call({:start_data_updater, realm, device_id, message_tracker}, _from, state) do |
135 | | - res = DataUpdater.get_data_updater_process(realm, device_id, message_tracker) |
136 | | - {:reply, res, state} |
137 | | - end |
138 | | - |
139 | 85 | @impl true |
140 | 86 | def handle_info(:init_consume, state), do: init_consume(state) |
141 | 87 |
|
|
0 commit comments