なんかキュー多すぎて、捨てるわけにもいかないしどうしたらいいの

atsuchan.pageとmt.shc.kanagawa.jpですね、問題のリレーから切断したけど再試行キューがすごい溜まってて、新しいアクティビティを受信しても、raceconditionでキューに詰まれるから投稿がまともに入ってこない

Mastodonはわからないけど、力技かキューを消すしかないんじゃないかしら

なるほどです、該当のリレーのキューだけ消すことってできますか?

フォロー

@atsu1125 離席してたわごめん、まだハマってる?

@atsu1125 ActivityPub::ProcessingWorkerあたりで、条件判定してWorkerを正常終了させるようにすれば自然にキューが捌けるから、その手がいいかな。

問題は条件だ。toがrelay.shc.kanagawa.jpかrelay.misskey.cfになってるAnnounceでいいかな。これを正常終了させる。

@atsu1125 こんなん。

class ActivityPub::ProcessingWorker
include Sidekiq::Worker
include JsonLdHelper

sidekiq_options backtrace: true, retry: 8

def perform(account_id, body, delivered_to_account_id = nil)
json = body_to_json(body)
return if json['type']&.include?('Announce') && (json['to']&.include?('relay.shc.kanagawa.jp') || json['to']&.include?('relay.misskey.cf'))

実行してないから動くかわからんけど、だいたいこんな感じのコード。JsonLdHelperの行と、performのあとの2行ね。

あとは応用きかせたまい。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。