X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FItemDeliveryData.php;h=a26c80b1cb1f356a18f3a01f9b70f887362995ae;hb=7b7132971a64a92a685a5fd860fe4709dce1765a;hp=1d5c37de2d0164dc19e699a4a74602a02cdaec54;hpb=c5d8d82bd272a50b4da50e0eca36ba1e0b5ad70d;p=friendica.git diff --git a/src/Model/ItemDeliveryData.php b/src/Model/ItemDeliveryData.php index 1d5c37de2d..a26c80b1cb 100644 --- a/src/Model/ItemDeliveryData.php +++ b/src/Model/ItemDeliveryData.php @@ -1,7 +1,22 @@ . + * */ namespace Friendica\Model; @@ -21,6 +36,7 @@ class ItemDeliveryData // New delivery fields with virtual field name in item fields 'queue_count' => 'delivery_queue_count', 'queue_done' => 'delivery_queue_done', + 'queue_failed' => 'delivery_queue_failed', ]; const ACTIVITYPUB = 1; @@ -28,6 +44,7 @@ class ItemDeliveryData const LEGACY_DFRN = 3; const DIASPORA = 4; const OSTATUS = 5; + const MAIL = 6; /** * Extract delivery data from the provided item fields @@ -88,6 +105,33 @@ class ItemDeliveryData return DBA::e('UPDATE `item-delivery-data` SET `queue_done` = `queue_done` + 1' . $sql . ' WHERE `iid` = ?', $item_id); } + /** + * Increments the queue_failed for the given item ID. + * + * Avoids racing condition between multiple delivery threads. + * + * @param integer $item_id + * @return bool + * @throws \Exception + */ + public static function incrementQueueFailed($item_id) + { + return DBA::e('UPDATE `item-delivery-data` SET `queue_failed` = `queue_failed` + 1 WHERE `iid` = ?', $item_id); + } + + /** + * Increments the queue_count for the given item ID. + * + * @param integer $item_id + * @param integer $increment + * @return bool + * @throws \Exception + */ + public static function incrementQueueCount(int $item_id, int $increment = 1) + { + return DBA::e('UPDATE `item-delivery-data` SET `queue_count` = `queue_count` + ? WHERE `iid` = ?', $increment, $item_id); + } + /** * Insert a new item delivery data entry *