Add status expiration

This commit is contained in:
KMY 2023-03-21 11:12:33 +09:00
parent 57c12e4fad
commit 16079b4db5
11 changed files with 120 additions and 1 deletions

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)