1
0
Fork 0

Improve synapse-cleanup

This commit is contained in:
Malte Brandy 2021-01-26 21:22:38 +01:00
parent be77f79c6e
commit 727ddce301
3 changed files with 11 additions and 1 deletions

View file

@ -1,8 +1,9 @@
{ pkgs, config, ... }:
{ pkgs, config, lib, ... }:
let
server_name = "maralorn.de";
hostName = "matrix.${server_name}";
in {
environment.systemPackages = [ pkgs.matrix-synapse-tools.rust-synapse-compress-state ];
systemd.services."synapse-cleanup" = {
serviceConfig = {
ExecStart = pkgs.writeHaskell "synapse-cleanup" {
@ -10,6 +11,7 @@ in {
pkgs.haskellPackages.postgresql-simple
pkgs.haskellPackages.HTTP
];
ghcEnv.PATH = "${lib.makeBinPath [ pkgs.matrix-synapse-tools.rust-synapse-compress-state pkgs.postgresql_12 ]}:$PATH";
ghcArgs = [ "-threaded" ];
} (builtins.readFile ./synapse-cleanup.hs);
User = "matrix-synapse";

View file

@ -24,6 +24,9 @@ import Prelude ( )
import Relude
import Say
import System.IO
import Shh
load Absolute ["synapse-compress-state", "cat", "psql", "rm", "grep"]
newtype PurgeResult = PurgeResult
{ purge_id :: Text
@ -39,6 +42,7 @@ apiUrl = [i|http://localhost:8008/_synapse/admin/v1|]
daysOld = 30
lastMessages = 500
minUsersToPurgeRoom = 5
filename = "/var/lib/matrix-synapse/tmp-storage-compression.sql"
main :: IO ()
main = do
@ -86,6 +90,9 @@ main = do
"SELECT q.room_id FROM (select count(*) as numberofusers, room_id FROM current_state_events WHERE type ='m.room.member' GROUP BY room_id) AS q LEFT JOIN room_aliases a ON q.room_id=a.room_id WHERE q.numberofusers > ? ORDER BY numberofusers desc"
(Only minUsersToPurgeRoom)
forM_ roomIds $ \roomId -> do
synapse_compress_state "-o" filename "-p" "host=/run/postgresql user=matrix-synapse dbname=matrix-synapse" "-r" (toString roomId) |> grep "-v" "DELETE\\|INSERT"
cat filename |> psql "matrix-synapse"
rm filename
eventId <-
fmap (second (posixSecondsToUTCTime . (/ 1000) . realToFrac))
. viaNonEmpty head

View file

@ -11,4 +11,5 @@ in {
syncthingNext = unstable.syncthing;
vimPlugins = unstable.vimPlugins;
fzf = unstable.fzf;
matrix-synapse-tools.rust-synapse-compress-state = unstable.matrix-synapse-tools.rust-synapse-compress-state;
}