]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/FetchMissingActivity.php
messages.po and and corrected typo in comment
[friendica.git] / src / Worker / FetchMissingActivity.php
index 5aabe89ced7d2c687c0cdd2dddef2813b286b193..bc7d80f7c538b119e54aa46864a87b0911d981f7 100644 (file)
 namespace Friendica\Worker;
 
 use Friendica\Core\Logger;
+use Friendica\Core\Worker;
+use Friendica\DI;
 use Friendica\Protocol\ActivityPub;
+use Friendica\Protocol\ActivityPub\Queue;
 use Friendica\Protocol\ActivityPub\Receiver;
 
 class FetchMissingActivity
@@ -30,11 +33,25 @@ class FetchMissingActivity
        /**
         * Fetch missing activities
         * @param string $url Contact URL
+        *
+        * @return void
         */
        public static function execute(string $url, array $child = [], string $relay_actor = '', int $completion = Receiver::COMPLETION_MANUAL)
        {
                Logger::info('Start fetching missing activity', ['url' => $url]);
                $result = ActivityPub\Processor::fetchMissingActivity($url, $child, $relay_actor, $completion);
-               Logger::info('Finished fetching missing activity', ['url' => $url, 'result' => $result]);
+               if ($result) {
+                       Logger::info('Successfully fetched missing activity', ['url' => $url]);
+               } elseif (!Worker::defer()) {
+                       Logger::info('Activity could not be fetched', ['url' => $url]);
+
+                       // recursively delete all entries that belong to this worker task
+                       $queue = DI::app()->getQueue();
+                       if (!empty($queue['id'])) {
+                               Queue::deleteByWorkerId($queue['id']);
+                       }
+               } else {
+                       Logger::info('Fetching deferred', ['url' => $url]);
+               }
        }
 }