Simplifications for the experimental bulk delivery

This commit is contained in:
Michael 2022-05-12 06:17:55 +00:00
parent f128c00ca5
commit d5d2892f59

View file

@ -61,43 +61,30 @@ class APDelivery
$result = self::deliver($inbox); $result = self::deliver($inbox);
$success = $result['success']; $success = $result['success'];
$uri_ids = $result['uri_ids']; $uri_ids = $result['uri_ids'];
} } else {
if (empty($uri_ids)) {
$success = self::deliverToInbox($cmd, $item_id, $inbox, $uid, $receivers, $uri_id); $success = self::deliverToInbox($cmd, $item_id, $inbox, $uid, $receivers, $uri_id);
$uri_ids = [$uri_id];
} }
if (!$success && !Worker::defer() && in_array($cmd, [Delivery::POST])) { if (!$success && !Worker::defer() && in_array($cmd, [Delivery::POST])) {
if (!empty($uri_id)) {
Post\Delivery::remove($uri_id, $inbox);
Post\DeliveryData::incrementQueueFailed($uri_id);
} elseif (!empty($uri_ids)) {
foreach ($uri_ids as $uri_id) { foreach ($uri_ids as $uri_id) {
Post\Delivery::remove($uri_id, $inbox); Post\Delivery::remove($uri_id, $inbox);
Post\DeliveryData::incrementQueueFailed($uri_id); Post\DeliveryData::incrementQueueFailed($uri_id);
} }
} }
} elseif ($success && in_array($cmd, [Delivery::POST])) {
if (!empty($uri_id)) {
Post\DeliveryData::incrementQueueDone($uri_id, Post\DeliveryData::ACTIVITYPUB);
} elseif (!empty($uri_ids)) {
foreach ($uri_ids as $uri_id) {
Post\DeliveryData::incrementQueueDone($uri_id, Post\DeliveryData::ACTIVITYPUB);
}
}
}
} }
private static function deliver(string $inbox) private static function deliver(string $inbox)
{ {
$uri_ids = []; $uri_ids = [];
$success = true;
$posts = Post\Delivery::selectForInbox($inbox); $posts = Post\Delivery::selectForInbox($inbox);
$success = empty($posts);
foreach ($posts as $post) { foreach ($posts as $post) {
if (self::deliverToInbox($post['command'], 0, $inbox, $post['uid'], [], $post['uri-id'])) {
$success = true;
} else {
$uri_ids[] = $post['uri-id']; $uri_ids[] = $post['uri-id'];
if ($success) {
$success = self::deliverToInbox($post['command'], 0, $inbox, $post['uid'], [], $post['uri-id']);
} }
} }
@ -154,6 +141,10 @@ class APDelivery
Logger::info('Delivered', ['cmd' => $cmd, 'inbox' => $inbox, 'id' => $item_id, 'uri-id' => $uri_id, 'uid' => $uid, 'success' => $success]); Logger::info('Delivered', ['cmd' => $cmd, 'inbox' => $inbox, 'id' => $item_id, 'uri-id' => $uri_id, 'uid' => $uid, 'success' => $success]);
if ($success && in_array($cmd, [Delivery::POST])) {
Post\DeliveryData::incrementQueueDone($uri_id, Post\DeliveryData::ACTIVITYPUB);
}
return $success; return $success;
} }