0520e67303
[refactor] Finish converting jobs to new job setup
25 lines
606 B
Crystal
25 lines
606 B
Crystal
class Invidious::Jobs::NotificationJob < Invidious::Jobs::BaseJob
|
|
private getter connection_channel : Channel({Bool, Channel(PQ::Notification)})
|
|
private getter pg_url : URI
|
|
|
|
def initialize(@connection_channel, @pg_url)
|
|
end
|
|
|
|
def begin
|
|
connections = [] of Channel(PQ::Notification)
|
|
|
|
PG.connect_listen(pg_url, "notifications") { |event| connections.each(&.send(event)) }
|
|
|
|
loop do
|
|
action, connection = connection_channel.receive
|
|
|
|
case action
|
|
when true
|
|
connections << connection
|
|
when false
|
|
connections.delete(connection)
|
|
end
|
|
end
|
|
end
|
|
end
|