improve monitor
This commit is contained in:
@@ -138,13 +138,15 @@ module Tasks::Bluesky
|
||||
conn.exec_query(
|
||||
"LISTEN #{Bluesky::MonitoredDid::REMOVED_NOTIFY_CHANNEL}",
|
||||
)
|
||||
conn.raw_connection.wait_for_notify do |event, pid, payload|
|
||||
logger.info("NOTIFY: #{event} / pid: #{pid} / payload: #{payload}")
|
||||
case event
|
||||
when Bluesky::MonitoredDid::ADDED_NOTIFY_CHANNEL
|
||||
@dids.add(payload)
|
||||
when Bluesky::MonitoredDid::REMOVED_NOTIFY_CHANNEL
|
||||
@dids.delete(payload)
|
||||
loop do
|
||||
conn.raw_connection.wait_for_notify do |event, pid, payload|
|
||||
logger.info("NOTIFY: #{event} / pid: #{pid} / payload: #{payload}")
|
||||
case event
|
||||
when Bluesky::MonitoredDid::ADDED_NOTIFY_CHANNEL
|
||||
@dids.add(payload)
|
||||
when Bluesky::MonitoredDid::REMOVED_NOTIFY_CHANNEL
|
||||
@dids.delete(payload)
|
||||
end
|
||||
end
|
||||
end
|
||||
rescue Interrupt
|
||||
|
||||
@@ -23,6 +23,11 @@ namespace :bluesky do
|
||||
raise "did is required" if did.blank?
|
||||
|
||||
Bluesky::MonitoredDid.create!(did: did)
|
||||
user =
|
||||
Domain::User::BlueskyUser.find_or_create_by!(did:) do |user|
|
||||
user.handle = handle
|
||||
end
|
||||
Domain::Bluesky::Job::ScanUserJob.perform_later(user:)
|
||||
end
|
||||
|
||||
desc "Remove a DID from the Bluesky monitor"
|
||||
|
||||
Reference in New Issue
Block a user