summaryrefslogtreecommitdiff
path: root/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-10-18 00:08:23 +0200
committerpolo <ordipolo@gmx.fr>2026-10-18 00:10:03 +0200
commit05e38eadbeb3de19e5b26003c2b401e00bb71df4 (patch)
treecf48350b69cfce92de6f3a0e03eb0876931c7077 /vendor/symfony/cache/Messenger/EarlyExpirationHandler.php
parent32843e50aa981f190bdb4fbc9adbeacc06fdf775 (diff)
downloadAppliGestionPHP-05e38eadbeb3de19e5b26003c2b401e00bb71df4.tar.gz
AppliGestionPHP-05e38eadbeb3de19e5b26003c2b401e00bb71df4.tar.bz2
AppliGestionPHP-05e38eadbeb3de19e5b26003c2b401e00bb71df4.zip
sortie de vendor du dépôt, oubli dans config-template.ini
Diffstat (limited to 'vendor/symfony/cache/Messenger/EarlyExpirationHandler.php')
-rw-r--r--vendor/symfony/cache/Messenger/EarlyExpirationHandler.php81
1 files changed, 0 insertions, 81 deletions
diff --git a/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php b/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php
deleted file mode 100644
index adaeb5b..0000000
--- a/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php
+++ /dev/null
@@ -1,81 +0,0 @@
1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Cache\Messenger;
13
14use Symfony\Component\Cache\CacheItem;
15use Symfony\Component\DependencyInjection\ReverseContainer;
16use Symfony\Component\Messenger\Attribute\AsMessageHandler;
17
18/**
19 * Computes cached values sent to a message bus.
20 */
21#[AsMessageHandler]
22class EarlyExpirationHandler
23{
24 private array $processedNonces = [];
25
26 public function __construct(
27 private ReverseContainer $reverseContainer,
28 ) {
29 }
30
31 public function __invoke(EarlyExpirationMessage $message): void
32 {
33 $item = $message->getItem();
34 $metadata = $item->getMetadata();
35 $expiry = $metadata[CacheItem::METADATA_EXPIRY] ?? 0;
36 $ctime = $metadata[CacheItem::METADATA_CTIME] ?? 0;
37
38 if ($expiry && $ctime) {
39 // skip duplicate or expired messages
40
41 $processingNonce = [$expiry, $ctime];
42 $pool = $message->getPool();
43 $key = $item->getKey();
44
45 if (($this->processedNonces[$pool][$key] ?? null) === $processingNonce) {
46 return;
47 }
48
49 if (microtime(true) >= $expiry) {
50 return;
51 }
52
53 $this->processedNonces[$pool] = [$key => $processingNonce] + ($this->processedNonces[$pool] ?? []);
54
55 if (\count($this->processedNonces[$pool]) > 100) {
56 array_pop($this->processedNonces[$pool]);
57 }
58 }
59
60 static $setMetadata;
61
62 $setMetadata ??= \Closure::bind(
63 function (CacheItem $item, float $startTime) {
64 if ($item->expiry > $endTime = microtime(true)) {
65 $item->newMetadata[CacheItem::METADATA_EXPIRY] = $item->expiry;
66 $item->newMetadata[CacheItem::METADATA_CTIME] = (int) ceil(1000 * ($endTime - $startTime));
67 }
68 },
69 null,
70 CacheItem::class
71 );
72
73 $startTime = microtime(true);
74 $pool = $message->findPool($this->reverseContainer);
75 $callback = $message->findCallback($this->reverseContainer);
76 $save = true;
77 $value = $callback($item, $save);
78 $setMetadata($item, $startTime);
79 $pool->save($item->set($value));
80 }
81}