Make invitations cleanup worker rely on UTC time (#4610)

This commit is contained in:
Adrian Gruntkowski 2024-09-25 14:44:55 +02:00 committed by GitHub
parent 3251b5bb33
commit 6981972617
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 3 deletions

View File

@ -2,11 +2,17 @@ defmodule Plausible.Workers.CleanInvitations do
use Plausible.Repo use Plausible.Repo
use Oban.Worker, queue: :clean_invitations use Oban.Worker, queue: :clean_invitations
@cutoff Duration.new!(hour: -48)
@impl Oban.Worker @impl Oban.Worker
def perform(_job) do def perform(_job) do
cutoff_time =
NaiveDateTime.utc_now(:second)
|> NaiveDateTime.shift(@cutoff)
Repo.delete_all( Repo.delete_all(
from i in Plausible.Auth.Invitation, from i in Plausible.Auth.Invitation,
where: i.inserted_at < fragment("now() - INTERVAL '48 hours'") where: i.inserted_at < ^cutoff_time
) )
:ok :ok

View File

@ -3,8 +3,10 @@ defmodule Plausible.Workers.CleanInvitationsTest do
alias Plausible.Workers.CleanInvitations alias Plausible.Workers.CleanInvitations
test "cleans invitation that is more than 48h old" do test "cleans invitation that is more than 48h old" do
now = NaiveDateTime.utc_now(:second)
insert(:invitation, insert(:invitation,
inserted_at: Timex.shift(Timex.now(), hours: -49), inserted_at: NaiveDateTime.shift(now, hour: -49),
site: build(:site), site: build(:site),
inviter: build(:user) inviter: build(:user)
) )
@ -15,8 +17,10 @@ defmodule Plausible.Workers.CleanInvitationsTest do
end end
test "does not clean invitation that is less than 48h old" do test "does not clean invitation that is less than 48h old" do
now = NaiveDateTime.utc_now(:second)
insert(:invitation, insert(:invitation,
inserted_at: Timex.shift(Timex.now(), hours: -47), inserted_at: NaiveDateTime.shift(now, hour: -47),
site: build(:site), site: build(:site),
inviter: build(:user) inviter: build(:user)
) )