The limit for dbclean is now configurable

This commit is contained in:
Michael 2018-10-21 05:41:40 +00:00
parent 49c7b5481b
commit c4cc7a4afb
2 changed files with 8 additions and 3 deletions

View File

@ -121,9 +121,14 @@ db_loglimit_index_high = 0
; dbclean_expire_conversation (Integer)
; When DBClean is enabled, any entry in the conversation table will be deleted after this many days.
; These data are normally needed only for debugging purposes and they are safe to delete.
: This data is used for ActivityPub, so it shouldn't be lower than the average duration of a discussion.
dbclean_expire_conversation = 90
; dbclean-expire-limit (Integer)
; This defines the number of items that are to be deleted in a single call.
; Reduce this value when you are getting memory issues.
dbclean-expire-limit = 1000
; diaspora_test (Boolean)
; For development only. Disables the message transfer.
diaspora_test = false

View File

@ -63,7 +63,7 @@ class DBClean {
$count = 0;
// We split the deletion in many small tasks
$limit = 1000;
$limit = Config::get('system', 'dbclean-expire-limit', 1000);
// Get the expire days for step 8 and 9
$days = Config::get('system', 'dbclean-expire-days', 0);
@ -275,7 +275,7 @@ class DBClean {
OR (`item`.`file` != '') OR (`item`.`event-id` != '')
OR (`item`.`attach` != '') OR `item`.`wall` OR `item`.`origin`)
AND `item`.`parent` = `thread`.`iid`)
ORDER BY `thread`.`iid` LIMIT 1000", $days, $last_id);
ORDER BY `thread`.`iid` LIMIT ?", $days, $last_id, $limit);
$count = DBA::numRows($r);
if ($count > 0) {
logger("found expired threads: ".$count);