Ensure SynchronizeFeaturedCollectionWorker is unique and clean up (#7043)
* Ensure SynchronizeFeaturedCollectionWorker is unique and clean up Fix #7041 * Fix code style issueshrike
parent
9e45b051cf
commit
778562c223
|
@ -22,13 +22,15 @@ class ActivityPub::ProcessAccountService < BaseService
|
||||||
|
|
||||||
create_account if @account.nil?
|
create_account if @account.nil?
|
||||||
update_account
|
update_account
|
||||||
process_tags(@account)
|
process_tags
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
return if @account.nil?
|
||||||
|
|
||||||
after_protocol_change! if protocol_changed?
|
after_protocol_change! if protocol_changed?
|
||||||
after_key_change! if key_changed?
|
after_key_change! if key_changed?
|
||||||
check_featured_collection! if @account&.featured_collection_url&.present?
|
check_featured_collection! if @account.featured_collection_url.present?
|
||||||
|
|
||||||
@account
|
@account
|
||||||
rescue Oj::ParseError
|
rescue Oj::ParseError
|
||||||
|
@ -189,17 +191,18 @@ class ActivityPub::ProcessAccountService < BaseService
|
||||||
{ redis: Redis.current, key: "process_account:#{@uri}" }
|
{ redis: Redis.current, key: "process_account:#{@uri}" }
|
||||||
end
|
end
|
||||||
|
|
||||||
def process_tags(account)
|
def process_tags
|
||||||
return if @json['tag'].blank?
|
return if @json['tag'].blank?
|
||||||
|
|
||||||
as_array(@json['tag']).each do |tag|
|
as_array(@json['tag']).each do |tag|
|
||||||
case tag['type']
|
case tag['type']
|
||||||
when 'Emoji'
|
when 'Emoji'
|
||||||
process_emoji tag, account
|
process_emoji tag
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def process_emoji(tag, _account)
|
def process_emoji(tag)
|
||||||
return if skip_download?
|
return if skip_download?
|
||||||
return if tag['name'].blank? || tag['icon'].blank? || tag['icon']['url'].blank?
|
return if tag['name'].blank? || tag['icon'].blank? || tag['icon']['url'].blank?
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
class ActivityPub::SynchronizeFeaturedCollectionWorker
|
class ActivityPub::SynchronizeFeaturedCollectionWorker
|
||||||
include Sidekiq::Worker
|
include Sidekiq::Worker
|
||||||
|
|
||||||
sidekiq_options queue: 'pull'
|
sidekiq_options queue: 'pull', unique: :until_executed
|
||||||
|
|
||||||
def perform(account_id)
|
def perform(account_id)
|
||||||
ActivityPub::FetchFeaturedCollectionService.new.call(Account.find(account_id))
|
ActivityPub::FetchFeaturedCollectionService.new.call(Account.find(account_id))
|
||||||
|
|
Loading…
Reference in New Issue