mirror of
https://github.com/bjc/prosody.git
synced 2025-04-04 05:37:39 +03:00
mod_mam,mod_muc_mam: Allow other work to be performed during archive cleanup (fixes #1504)
This lets Prosody handle socket related work between each step in the cleanup in order to prevent the server from being completely blocked during this. An async storage backend would not need this but those are currently rare.
This commit is contained in:
parent
e59b70638c
commit
e3911ce5da
2 changed files with 10 additions and 2 deletions
|
@ -362,7 +362,8 @@ if cleanup_after ~= "never" then
|
|||
end
|
||||
end
|
||||
|
||||
cleanup_runner = require "util.async".runner(function ()
|
||||
local async = require "util.async";
|
||||
cleanup_runner = async.runner(function ()
|
||||
local users = {};
|
||||
local cut_off = datestamp(os.time() - cleanup_after);
|
||||
for date in cleanup_storage:users() do
|
||||
|
@ -391,6 +392,9 @@ if cleanup_after ~= "never" then
|
|||
cleanup_map:set(cut_off, user, true);
|
||||
module:log("error", "Could not delete messages for user '%s': %s", user, err);
|
||||
end
|
||||
local wait, done = async.waiter();
|
||||
module:add_timer(0.01, done);
|
||||
wait();
|
||||
end
|
||||
module:log("info", "Deleted %d expired messages for %d users", sum, num_users);
|
||||
end);
|
||||
|
|
|
@ -437,7 +437,8 @@ if cleanup_after ~= "never" then
|
|||
end
|
||||
end
|
||||
|
||||
cleanup_runner = require "util.async".runner(function ()
|
||||
local async = require "util.async";
|
||||
cleanup_runner = async.runner(function ()
|
||||
local rooms = {};
|
||||
local cut_off = datestamp(os.time() - cleanup_after);
|
||||
for date in cleanup_storage:users() do
|
||||
|
@ -466,6 +467,9 @@ if cleanup_after ~= "never" then
|
|||
cleanup_map:set(cut_off, room, true);
|
||||
module:log("error", "Could not delete messages for room '%s': %s", room, err);
|
||||
end
|
||||
local wait, done = async.waiter();
|
||||
module:add_timer(0.01, done);
|
||||
wait();
|
||||
end
|
||||
module:log("info", "Deleted %d expired messages for %d rooms", sum, num_rooms);
|
||||
end);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue