Merge remote-tracking branch 'origin/kb_development' into kb_migration

This commit is contained in:
KMY 2023-03-21 15:20:00 +09:00
commit 0071b15fa3
18 changed files with 455 additions and 2 deletions

View file

@ -0,0 +1,16 @@
# frozen_string_literal: true
class RemoveExpiredStatusWorker
include Sidekiq::Worker
sidekiq_options lock: :until_executed
def perform(scheduled_expiration_status_id)
scheduled_expiration_status = ScheduledExpirationStatus.find(scheduled_expiration_status_id)
scheduled_expiration_status.destroy!
RemoveStatusService.new.call(scheduled_expiration_status.status)
rescue ActiveRecord::RecordNotFound, ActiveRecord::RecordInvalid
true
end
end

View file

@ -7,6 +7,7 @@ class Scheduler::ScheduledStatusesScheduler
def perform
publish_scheduled_statuses!
unpublish_expired_statuses!
publish_scheduled_announcements!
unpublish_expired_announcements!
end
@ -19,10 +20,20 @@ class Scheduler::ScheduledStatusesScheduler
end
end
def unpublish_expired_statuses!
expired_statuses.find_each do |expired_status|
RemoveExpiredStatusWorker.perform_at(expired_status.scheduled_at, expired_status.id)
end
end
def due_statuses
ScheduledStatus.where('scheduled_at <= ?', Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET)
end
def expired_statuses
ScheduledExpirationStatus.where('scheduled_at <= ?', Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET)
end
def publish_scheduled_announcements!
due_announcements.find_each do |announcement|
PublishScheduledAnnouncementWorker.perform_at(announcement.scheduled_at, announcement.id)