summaryrefslogtreecommitdiff
path: root/lib/mix/tasks
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-09-10 19:17:15 +0000
committerrinpatch <rinpatch@sdf.org>2020-09-10 19:17:15 +0000
commit6316350918d1f55167fa384d55f385ff2c93e6bb (patch)
tree00f09310b3ea61a545906060efa7baace0b8378e /lib/mix/tasks
parent0254696e30132f48e585154450aff87afb259e1d (diff)
parent82b56cdb9bc01dcf4dbd2ac0c06103af0900787d (diff)
downloadpleroma-6316350918d1f55167fa384d55f385ff2c93e6bb.tar.gz
pleroma-6316350918d1f55167fa384d55f385ff2c93e6bb.zip
Merge branch 'oban-overuse' into 'develop'
Expired activities as scheduled jobs in Oban See merge request pleroma/pleroma!2916
Diffstat (limited to 'lib/mix/tasks')
-rw-r--r--lib/mix/tasks/pleroma/database.ex17
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex
index 7d8f00b08..7f1108dcf 100644
--- a/lib/mix/tasks/pleroma/database.ex
+++ b/lib/mix/tasks/pleroma/database.ex
@@ -133,8 +133,7 @@ defmodule Mix.Tasks.Pleroma.Database do
days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365)
Pleroma.Activity
- |> join(:left, [a], u in assoc(a, :expiration))
- |> join(:inner, [a, _u], o in Object,
+ |> join(:inner, [a], o in Object,
on:
fragment(
"(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')",
@@ -144,14 +143,20 @@ defmodule Mix.Tasks.Pleroma.Database do
)
)
|> where(local: true)
- |> where([a, u], is_nil(u))
|> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data))
- |> where([_a, _u, o], fragment("?->>'type' = 'Note'", o.data))
+ |> where([_a, o], fragment("?->>'type' = 'Note'", o.data))
|> Pleroma.RepoStreamer.chunk_stream(100)
|> Stream.each(fn activities ->
Enum.each(activities, fn activity ->
- expires_at = Timex.shift(activity.inserted_at, days: days)
- Pleroma.ActivityExpiration.create(activity, expires_at, false)
+ expires_at =
+ activity.inserted_at
+ |> DateTime.from_naive!("Etc/UTC")
+ |> Timex.shift(days: days)
+
+ Pleroma.Workers.PurgeExpiredActivity.enqueue(%{
+ activity_id: activity.id,
+ expires_at: expires_at
+ })
end)
end)
|> Stream.run()