mirror of
https://github.com/postalserver/postal.git
synced 2026-10-18 18:26:06 +00:00
feat: new background work process
This removes all previous dependencies on RabbitMQ and the need to run separate cron and requeueing processes.
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class ApplicationScheduledTask
|
||||
|
||||
def initialize(logger:)
|
||||
@logger = logger
|
||||
end
|
||||
|
||||
def call
|
||||
# override me
|
||||
end
|
||||
|
||||
attr_reader :logger
|
||||
|
||||
class << self
|
||||
|
||||
def next_run_after
|
||||
quarter_past_each_hour
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def quarter_past_each_hour
|
||||
time = Time.current
|
||||
time = time.change(min: 15, sec: 0)
|
||||
time += 1.hour if time < Time.current
|
||||
time
|
||||
end
|
||||
|
||||
def quarter_to_each_hour
|
||||
time = Time.current
|
||||
time = time.change(min: 45, sec: 0)
|
||||
time += 1.hour if time < Time.current
|
||||
time
|
||||
end
|
||||
|
||||
def three_am
|
||||
time = Time.current
|
||||
time = time.change(hour: 3, min: 0, sec: 0)
|
||||
time += 1.day if time < Time.current
|
||||
time
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user