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
/**
* 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('Successfully fetched missing activity', ['url' => $url]);
} elseif (!Worker::defer()) {
Logger::info('Activity could not be fetched', ['url' => $url]);
- // Possibly we should recursively remove child activities at this point.
+
+ // 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]);
}