]> git.mxchange.org Git - friendica.git/commitdiff
Issue 14413: Ensure that the expiry is performed
authorMichael <heluecht@pirati.ca>
Thu, 5 Sep 2024 06:35:38 +0000 (06:35 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 5 Sep 2024 06:35:38 +0000 (06:35 +0000)
src/Model/Item.php
src/Worker/Cron.php
src/Worker/Expire.php
src/Worker/ExpirePosts.php

index 72d7c364bc2bcf87ac0365be4bfd4adcb44c5d2e..cb5857388a4ce06585fe665bb2bab63a22f15172 100644 (file)
@@ -2881,10 +2881,10 @@ class Item
                return $recipients;
        }
 
-       public static function expire(int $uid, int $days, string $network = "", bool $force = false)
+       public static function expire(int $uid, int $days, string $network = "", bool $force = false): int
        {
                if (!$uid || ($days < 1)) {
-                       return;
+                       return 0;
                }
 
                $condition = [
@@ -2913,7 +2913,7 @@ class Item
                $items = Post::select(['resource-id', 'starred', 'id', 'post-type', 'uid', 'uri-id'], $condition);
 
                if (!DBA::isResult($items)) {
-                       return;
+                       return 0;
                }
 
                $expire_items = (bool)DI::pConfig()->get($uid, 'expire', 'items', true);
@@ -2955,6 +2955,7 @@ class Item
                }
                DBA::close($items);
                Logger::notice('Expired', ['user' => $uid, 'days' => $days, 'network' => $network, 'force' => $force, 'expired' => $expired, 'expire items' => $expire_items, 'expire notes' => $expire_notes, 'expire starred' => $expire_starred, 'expire photos' => $expire_photos, 'condition' => $condition]);
+               return $expired;
        }
 
        public static function firstPostDate(int $uid, bool $wall = false)
index a0dcfc2f7143125208d1b7fb54fb06bcfab3ba61..1c21bf50650d82387864ddf3886a09c331122435 100644 (file)
@@ -107,12 +107,16 @@ class Cron
 
                        Worker::add(Worker::PRIORITY_LOW, 'ExpireSearchIndex');
 
+                       Worker::add(Worker::PRIORITY_LOW, 'Expire');
+
                        Worker::add(Worker::PRIORITY_LOW, 'RemoveUnusedTags');
 
                        Worker::add(Worker::PRIORITY_LOW, 'RemoveUnusedContacts');
 
                        Worker::add(Worker::PRIORITY_LOW, 'RemoveUnusedAvatars');
 
+                       Worker::add(Worker::PRIORITY_LOW, 'NodeInfo');
+
                        // check upstream version?
                        Worker::add(Worker::PRIORITY_LOW, 'CheckVersion');
 
index 6f2d0edae1c3a718a8d487b490edce80a8f5b7b6..e7d77fdbd7afbc43f1480c4c1b6f7b047d3e3d5c 100644 (file)
@@ -29,8 +29,8 @@ class Expire
                        $user = DBA::selectFirst('user', ['uid', 'username', 'expire'], ['uid' => $param]);
                        if (DBA::isResult($user)) {
                                Logger::info('Expire items', ['user' => $user['uid'], 'username' => $user['username'], 'interval' => $user['expire']]);
-                               Item::expire($user['uid'], $user['expire']);
-                               Logger::info('Expire items done', ['user' => $user['uid'], 'username' => $user['username'], 'interval' => $user['expire']]);
+                               $expired = Item::expire($user['uid'], $user['expire']);
+                               Logger::info('Expire items done', ['user' => $user['uid'], 'username' => $user['username'], 'interval' => $user['expire'], 'expired' => $expired]);
                        }
                        return;
                } elseif ($param == 'hook' && !empty($hook_function)) {
index 582888a78fdf9e6577ebfb7a46f8d129f1faebe9..c05a92f80a930a4ff0bcc2510eb93abe08d6d1ab 100644 (file)
@@ -27,32 +27,36 @@ class ExpirePosts
         */
        public static function execute()
        {
+               Logger::notice('Expire posts - start');
+
                if (!DBA::acquireOptimizeLock()) {
                        Logger::warning('Lock could not be acquired');
+                       Worker::defer();
                        return;
                }
 
+               Logger::notice('Expire posts - Delete expired origin posts');
                self::deleteExpiredOriginPosts();
 
+               Logger::notice('Expire posts - Delete orphaned entries');
                self::deleteOrphanedEntries();
 
+               Logger::notice('Expire posts - delete unused item-uri entries');
                self::deleteUnusedItemUri();
 
+               Logger::notice('Expire posts - delete external posts');
                self::deleteExpiredExternalPosts();
 
                if (DI::config()->get('system', 'add_missing_posts')) {
+                       Logger::notice('Expire posts - add missing posts');
                        self::addMissingEntries();
                }
 
+               Logger::notice('Expire posts - delete unused attachments');
                self::deleteUnusedAttachments();
 
                DBA::releaseOptimizeLock();
-
-               // Set the expiry for origin posts
-               Worker::add(Worker::PRIORITY_LOW, 'Expire');
-
-               // update nodeinfo data after everything is cleaned up
-               Worker::add(Worker::PRIORITY_LOW, 'NodeInfo');
+               Logger::notice('Expire posts - done');
        }
 
        /**