@@ -60,6 +60,16 @@ defmodule Quantum.JobBroadcaster do
6060 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Loading Initial Jobs from Storage, skipping config"
6161 end )
6262
63+ for % Job { state: :active , name: name } = job <- storage_jobs do
64+ # Send event to telemetry incase the end user wants to monitor events
65+ :telemetry . execute ( [ :quantum , :job , :add ] , % { } , % {
66+ job_name: name ,
67+ job: job ,
68+ node: inspect ( Node . self ( ) ) ,
69+ scheduler: scheduler
70+ } )
71+ end
72+
6373 storage_jobs
6474 end
6575
@@ -99,6 +109,14 @@ defmodule Quantum.JobBroadcaster do
99109 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Replacing job #{ inspect ( job_name ) } "
100110 end )
101111
112+ # Send event to telemetry incase the end user wants to monitor events
113+ :telemetry . execute ( [ :quantum , :job , :update ] , % { } , % {
114+ job_name: job_name ,
115+ job: job ,
116+ node: inspect ( Node . self ( ) ) ,
117+ scheduler: state . scheduler
118+ } )
119+
102120 :ok = storage . delete_job ( storage_pid , job_name )
103121 :ok = storage . add_job ( storage_pid , job )
104122
@@ -111,6 +129,14 @@ defmodule Quantum.JobBroadcaster do
111129 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Replacing job #{ inspect ( job_name ) } "
112130 end )
113131
132+ # Send event to telemetry incase the end user wants to monitor events
133+ :telemetry . execute ( [ :quantum , :job , :update ] , % { } , % {
134+ job_name: job_name ,
135+ job: job ,
136+ node: inspect ( Node . self ( ) ) ,
137+ scheduler: state . scheduler
138+ } )
139+
114140 :ok = storage . delete_job ( storage_pid , job_name )
115141 :ok = storage . add_job ( storage_pid , job )
116142
@@ -122,6 +148,14 @@ defmodule Quantum.JobBroadcaster do
122148 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Adding job #{ inspect ( job_name ) } "
123149 end )
124150
151+ # Send event to telemetry incase the end user wants to monitor events
152+ :telemetry . execute ( [ :quantum , :job , :add ] , % { } , % {
153+ job_name: job_name ,
154+ job: job ,
155+ node: inspect ( Node . self ( ) ) ,
156+ scheduler: state . scheduler
157+ } )
158+
125159 :ok = storage . add_job ( storage_pid , job )
126160
127161 { :noreply , [ { :add , job } ] , % { state | jobs: Map . put ( jobs , job_name , job ) } }
@@ -144,6 +178,14 @@ defmodule Quantum.JobBroadcaster do
144178 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Replacing job #{ inspect ( job_name ) } "
145179 end )
146180
181+ # Send event to telemetry incase the end user wants to monitor events
182+ :telemetry . execute ( [ :quantum , :job , :update ] , % { } , % {
183+ job_name: job_name ,
184+ job: job ,
185+ node: inspect ( Node . self ( ) ) ,
186+ scheduler: state . scheduler
187+ } )
188+
147189 :ok = storage . delete_job ( storage_pid , job_name )
148190 :ok = storage . add_job ( storage_pid , job )
149191
@@ -155,6 +197,14 @@ defmodule Quantum.JobBroadcaster do
155197 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Replacing job #{ inspect ( job_name ) } "
156198 end )
157199
200+ # Send event to telemetry incase the end user wants to monitor events
201+ :telemetry . execute ( [ :quantum , :job , :update ] , % { } , % {
202+ job_name: job_name ,
203+ job: job ,
204+ node: inspect ( Node . self ( ) ) ,
205+ scheduler: state . scheduler
206+ } )
207+
158208 :ok = storage . delete_job ( storage_pid , job_name )
159209 :ok = storage . add_job ( storage_pid , job )
160210
@@ -166,6 +216,14 @@ defmodule Quantum.JobBroadcaster do
166216 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Adding job #{ inspect ( job_name ) } "
167217 end )
168218
219+ # Send event to telemetry incase the end user wants to monitor events
220+ :telemetry . execute ( [ :quantum , :job , :add ] , % { } , % {
221+ job_name: job_name ,
222+ job: job ,
223+ node: inspect ( Node . self ( ) ) ,
224+ scheduler: state . scheduler
225+ } )
226+
169227 :ok = storage . add_job ( storage_pid , job )
170228
171229 { :noreply , [ ] , % { state | jobs: Map . put ( jobs , job_name , job ) } }
@@ -187,12 +245,28 @@ defmodule Quantum.JobBroadcaster do
187245 end )
188246
189247 case Map . fetch ( jobs , name ) do
190- { :ok , % { state: :active } } ->
248+ { :ok , % { state: :active , name: name } = job } ->
249+ # Send event to telemetry incase the end user wants to monitor events
250+ :telemetry . execute ( [ :quantum , :job , :delete ] , % { } , % {
251+ job_name: name ,
252+ job: job ,
253+ node: inspect ( Node . self ( ) ) ,
254+ scheduler: state . scheduler
255+ } )
256+
191257 :ok = storage . delete_job ( storage_pid , name )
192258
193259 { :noreply , [ { :remove , name } ] , % { state | jobs: Map . delete ( jobs , name ) } }
194260
195- { :ok , % { state: :inactive } } ->
261+ { :ok , % { state: :inactive , name: name } = job } ->
262+ # Send event to telemetry incase the end user wants to monitor events
263+ :telemetry . execute ( [ :quantum , :job , :delete ] , % { } , % {
264+ job_name: name ,
265+ job: job ,
266+ node: inspect ( Node . self ( ) ) ,
267+ scheduler: state . scheduler
268+ } )
269+
196270 :ok = storage . delete_job ( storage_pid , name )
197271
198272 { :noreply , [ ] , % { state | jobs: Map . delete ( jobs , name ) } }
@@ -224,6 +298,14 @@ defmodule Quantum.JobBroadcaster do
224298 { :noreply , [ ] , state }
225299
226300 { :ok , job } ->
301+ # Send event to telemetry incase the end user wants to monitor events
302+ :telemetry . execute ( [ :quantum , :job , :update ] , % { } , % {
303+ job_name: name ,
304+ job: job ,
305+ node: inspect ( Node . self ( ) ) ,
306+ scheduler: state . scheduler
307+ } )
308+
227309 jobs = Map . update! ( jobs , name , & Job . set_state ( & 1 , new_state ) )
228310
229311 :ok = storage . update_job_state ( storage_pid , job . name , new_state )
@@ -252,6 +334,16 @@ defmodule Quantum.JobBroadcaster do
252334 "[#{ inspect ( Node . self ( ) ) } ][#{ __MODULE__ } ] Deleting all jobs"
253335 end )
254336
337+ for { name , % Job { } = job } <- jobs do
338+ # Send event to telemetry incase the end user wants to monitor events
339+ :telemetry . execute ( [ :quantum , :job , :delete ] , % { } , % {
340+ job_name: name ,
341+ job: job ,
342+ node: inspect ( Node . self ( ) ) ,
343+ scheduler: state . scheduler
344+ } )
345+ end
346+
255347 messages = for { name , % Job { state: :active } } <- jobs , do: { :remove , name }
256348
257349 :ok = storage . purge ( storage_pid )
0 commit comments