Skip to content

Commit 4a91612

Browse files
committed
Merge branch 'MC-13613-2' into Performance-PR-2.3.2
2 parents 228fd91 + 62abb3c commit 4a91612

File tree

18 files changed

+188
-129
lines changed

18 files changed

+188
-129
lines changed

app/code/Magento/Config/Model/Config.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ class Config extends \Magento\Framework\DataObject
115115
private $scopeTypeNormalizer;
116116

117117
/**
118-
* @var \Magento\MessageQueue\Api\PoisonPillPutInterface
118+
* @var \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface
119119
*/
120120
private $pillPut;
121121

@@ -131,7 +131,7 @@ class Config extends \Magento\Framework\DataObject
131131
* @param array $data
132132
* @param ScopeResolverPool|null $scopeResolverPool
133133
* @param ScopeTypeNormalizer|null $scopeTypeNormalizer
134-
* @param \Magento\MessageQueue\Api\PoisonPillPutInterface|null $pillPut
134+
* @param \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface|null $pillPut
135135
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
136136
*/
137137
public function __construct(
@@ -146,7 +146,7 @@ public function __construct(
146146
array $data = [],
147147
ScopeResolverPool $scopeResolverPool = null,
148148
ScopeTypeNormalizer $scopeTypeNormalizer = null,
149-
\Magento\MessageQueue\Api\PoisonPillPutInterface $pillPut = null
149+
\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface $pillPut = null
150150
) {
151151
parent::__construct($data);
152152
$this->_eventManager = $eventManager;
@@ -163,7 +163,7 @@ public function __construct(
163163
$this->scopeTypeNormalizer = $scopeTypeNormalizer
164164
?? ObjectManager::getInstance()->get(ScopeTypeNormalizer::class);
165165
$this->pillPut = $pillPut ?: \Magento\Framework\App\ObjectManager::getInstance()
166-
->get(\Magento\MessageQueue\Api\PoisonPillPutInterface::class);
166+
->get(\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface::class);
167167
}
168168

169169
/**

app/code/Magento/MessageQueue/Model/CallbackInvoker.php

Lines changed: 0 additions & 66 deletions
This file was deleted.

app/code/Magento/MessageQueue/Model/PoisonPillCompare.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
namespace Magento\MessageQueue\Model;
99

10-
use Magento\MessageQueue\Api\PoisonPillCompareInterface;
11-
use Magento\MessageQueue\Api\PoisonPillReadInterface;
10+
use Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface;
11+
use Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface;
1212

1313
/**
1414
* Poison pill compare
@@ -33,8 +33,8 @@ public function __construct(
3333
/**
3434
* @inheritdoc
3535
*/
36-
public function isLatestVersion(int $poisonPillVersion): bool
36+
public function isLatestVersion(string $poisonPillVersion): bool
3737
{
38-
return $poisonPillVersion === $this->poisonPillRead->getLatestVersion();
38+
return (string) $poisonPillVersion === (string) $this->poisonPillRead->getLatestVersion();
3939
}
4040
}

app/code/Magento/MessageQueue/Model/ResourceModel/PoisonPill.php

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77

88
namespace Magento\MessageQueue\Model\ResourceModel;
99

10-
use Magento\MessageQueue\Api\PoisonPillReadInterface;
11-
use Magento\MessageQueue\Api\PoisonPillPutInterface;
10+
use Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface;
11+
use Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface;
1212
use Magento\Framework\Model\ResourceModel\Db\Context;
1313
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
1414

1515
/**
16-
* PoisonPill.
16+
* PoisonPill class that enclose read and put interface.
1717
*/
1818
class PoisonPill extends AbstractDb implements PoisonPillPutInterface, PoisonPillReadInterface
1919
{
@@ -46,30 +46,43 @@ protected function _construct()
4646
/**
4747
* @inheritdoc
4848
*/
49-
public function put(): int
49+
public function put(): string
5050
{
5151
$connection = $this->getConnection();
5252
$table = $this->getMainTable();
53-
$connection->insert($table, []);
54-
return (int)$connection->lastInsertId($table);
53+
$uuid = uniqid('version-');
54+
$version = $this->getVersionFromDb();
55+
if ($version !== null) {
56+
$connection->update($table, ['version' => $uuid]);
57+
} else {
58+
$connection->insert($table, ['version' => $uuid]);
59+
}
60+
61+
return $uuid;
5562
}
5663

5764
/**
5865
* @inheritdoc
5966
*/
60-
public function getLatestVersion() : int
67+
public function getLatestVersion(): ?string
68+
{
69+
return $this->getVersionFromDb();
70+
}
71+
72+
/**
73+
* Returns version form DB or null.
74+
*
75+
* @return string|null
76+
*/
77+
private function getVersionFromDb(): ?string
6178
{
6279
$select = $this->getConnection()->select()->from(
6380
$this->getTable(self::QUEUE_POISON_PILL_TABLE),
6481
'version'
65-
)->order(
66-
'version ' . \Magento\Framework\DB\Select::SQL_DESC
67-
)->limit(
68-
1
6982
);
7083

71-
$version = (int)$this->getConnection()->fetchOne($select);
84+
$result = $this->getConnection()->fetchOne($select);
7285

73-
return $version;
86+
return $result === false ? null : $result;
7487
}
7588
}

app/code/Magento/MessageQueue/etc/db_schema.xml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,7 @@
2121
<column name="message_code"/>
2222
</constraint>
2323
</table>
24-
<table name="queue_poison_pill" resource="default" engine="innodb"
25-
comment="Sequence table for poison pill versions">
26-
<column xsi:type="int" name="version" padding="10" unsigned="true" nullable="false" identity="true"
27-
comment="Poison Pill version."/>
28-
<constraint xsi:type="primary" referenceId="PRIMARY">
29-
<column name="version"/>
30-
</constraint>
24+
<table name="queue_poison_pill" resource="default" engine="innodb" comment="Sequence table for poison pill versions">
25+
<column xsi:type="varchar" name="version" length="255" nullable="false" comment="Poison Pill version."/>
3126
</table>
3227
</schema>

app/code/Magento/MessageQueue/etc/db_schema_whitelist.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
"queue_poison_pill": {
1414
"column": {
1515
"version": true
16-
},
17-
"constraint": {
18-
"PRIMARY": true
1916
}
2017
}
2118
}

app/code/Magento/MessageQueue/etc/di.xml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@
1313
<preference for="Magento\Framework\MessageQueue\EnvelopeInterface" type="Magento\Framework\MessageQueue\Envelope"/>
1414
<preference for="Magento\Framework\MessageQueue\ConsumerInterface" type="Magento\Framework\MessageQueue\Consumer"/>
1515
<preference for="Magento\Framework\MessageQueue\MergedMessageInterface" type="Magento\Framework\MessageQueue\MergedMessage"/>
16-
<preference for="Magento\MessageQueue\Api\PoisonPillCompareInterface" type="Magento\MessageQueue\Model\PoisonPillCompare"/>
17-
<preference for="Magento\MessageQueue\Api\PoisonPillPutInterface" type="Magento\MessageQueue\Model\ResourceModel\PoisonPill"/>
18-
<preference for="Magento\MessageQueue\Api\PoisonPillReadInterface" type="Magento\MessageQueue\Model\ResourceModel\PoisonPill"/>
19-
<preference for="Magento\Framework\MessageQueue\CallbackInvokerInterface" type="Magento\MessageQueue\Model\CallbackInvoker"/>
16+
<preference for="Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface" type="Magento\MessageQueue\Model\PoisonPillCompare"/>
17+
<preference for="Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface" type="Magento\MessageQueue\Model\ResourceModel\PoisonPill"/>
18+
<preference for="Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface" type="Magento\MessageQueue\Model\ResourceModel\PoisonPill"/>
2019
<type name="Magento\Framework\Console\CommandListInterface">
2120
<arguments>
2221
<argument name="commands" xsi:type="array">

app/code/Magento/Store/Model/Group.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class Group extends \Magento\Framework\Model\AbstractExtensibleModel implements
101101
private $eventManager;
102102

103103
/**
104-
* @var \Magento\MessageQueue\Api\PoisonPillPutInterface
104+
* @var \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface
105105
*/
106106
private $pillPut;
107107

@@ -117,7 +117,7 @@ class Group extends \Magento\Framework\Model\AbstractExtensibleModel implements
117117
* @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
118118
* @param array $data
119119
* @param \Magento\Framework\Event\ManagerInterface|null $eventManager
120-
* @param \Magento\MessageQueue\Api\PoisonPillPutInterface|null $pillPut
120+
* @param \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface|null $pillPut
121121
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
122122
*/
123123
public function __construct(
@@ -132,15 +132,15 @@ public function __construct(
132132
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
133133
array $data = [],
134134
\Magento\Framework\Event\ManagerInterface $eventManager = null,
135-
\Magento\MessageQueue\Api\PoisonPillPutInterface $pillPut = null
135+
\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface $pillPut = null
136136
) {
137137
$this->_configDataResource = $configDataResource;
138138
$this->_storeListFactory = $storeListFactory;
139139
$this->_storeManager = $storeManager;
140140
$this->eventManager = $eventManager ?: \Magento\Framework\App\ObjectManager::getInstance()
141141
->get(\Magento\Framework\Event\ManagerInterface::class);
142142
$this->pillPut = $pillPut ?: \Magento\Framework\App\ObjectManager::getInstance()
143-
->get(\Magento\MessageQueue\Api\PoisonPillPutInterface::class);
143+
->get(\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface::class);
144144
parent::__construct(
145145
$context,
146146
$registry,

app/code/Magento/Store/Model/Store.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ class Store extends AbstractExtensibleModel implements
327327
private $eventManager;
328328

329329
/**
330-
* @var \Magento\MessageQueue\Api\PoisonPillPutInterface
330+
* @var \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface
331331
*/
332332
private $pillPut;
333333

@@ -357,7 +357,7 @@ class Store extends AbstractExtensibleModel implements
357357
* @param bool $isCustomEntryPoint
358358
* @param array $data optional generic object data
359359
* @param \Magento\Framework\Event\ManagerInterface|null $eventManager
360-
* @param \Magento\MessageQueue\Api\PoisonPillPutInterface|null $pillPut
360+
* @param \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface|null $pillPut
361361
*
362362
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
363363
*/
@@ -387,7 +387,7 @@ public function __construct(
387387
$isCustomEntryPoint = false,
388388
array $data = [],
389389
\Magento\Framework\Event\ManagerInterface $eventManager = null,
390-
\Magento\MessageQueue\Api\PoisonPillPutInterface $pillPut = null
390+
\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface $pillPut = null
391391
) {
392392
$this->_coreFileStorageDatabase = $coreFileStorageDatabase;
393393
$this->_config = $config;
@@ -409,7 +409,7 @@ public function __construct(
409409
$this->eventManager = $eventManager ?: \Magento\Framework\App\ObjectManager::getInstance()
410410
->get(\Magento\Framework\Event\ManagerInterface::class);
411411
$this->pillPut = $pillPut ?: \Magento\Framework\App\ObjectManager::getInstance()
412-
->get(\Magento\MessageQueue\Api\PoisonPillPutInterface::class);
412+
->get(\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface::class);
413413
parent::__construct(
414414
$context,
415415
$registry,

app/code/Magento/Store/Model/Website.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class Website extends \Magento\Framework\Model\AbstractExtensibleModel implement
160160
protected $_currencyFactory;
161161

162162
/**
163-
* @var \Magento\MessageQueue\Api\PoisonPillPutInterface
163+
* @var \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface
164164
*/
165165
private $pillPut;
166166

@@ -179,7 +179,7 @@ class Website extends \Magento\Framework\Model\AbstractExtensibleModel implement
179179
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
180180
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
181181
* @param array $data
182-
* @param \Magento\MessageQueue\Api\PoisonPillPutInterface|null $pillPut
182+
* @param \Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface|null $pillPut
183183
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
184184
*/
185185
public function __construct(
@@ -197,7 +197,7 @@ public function __construct(
197197
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
198198
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
199199
array $data = [],
200-
\Magento\MessageQueue\Api\PoisonPillPutInterface $pillPut = null
200+
\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface $pillPut = null
201201
) {
202202
parent::__construct(
203203
$context,
@@ -216,7 +216,7 @@ public function __construct(
216216
$this->_storeManager = $storeManager;
217217
$this->_currencyFactory = $currencyFactory;
218218
$this->pillPut = $pillPut ?: \Magento\Framework\App\ObjectManager::getInstance()
219-
->get(\Magento\MessageQueue\Api\PoisonPillPutInterface::class);
219+
->get(\Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface::class);
220220
}
221221

222222
/**

0 commit comments

Comments
 (0)