Skip to content

Commit 1560abc

Browse files
committed
MAGE-1151: fix queue merging
1 parent affa603 commit 1560abc

File tree

2 files changed

+99
-79
lines changed

2 files changed

+99
-79
lines changed

Model/Job.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,35 +124,47 @@ public function canMerge(Job $job, $maxJobDataSize)
124124

125125
$decodedData = $this->getDecodedData();
126126

127+
// @todo Remove legacy checks on 3.16.0
127128
if ((!isset($decodedData['product_ids']) || count($decodedData['product_ids']) <= 0)
128129
&& (!isset($decodedData['category_ids']) || count($decodedData['category_ids']) < 0)
130+
&& (!isset($decodedData['ids']) || count($decodedData['ids']) < 0)
129131
&& (!isset($decodedData['page_ids']) || count($decodedData['page_ids']) < 0)) {
130132
return false;
131133
}
132134

133135
$candidateDecodedData = $job->getDecodedData();
134136

137+
// @todo Remove legacy checks on 3.16.0
135138
if ((!isset($candidateDecodedData['product_ids']) || count($candidateDecodedData['product_ids']) <= 0)
136139
&& (!isset($candidateDecodedData['category_ids']) || count($candidateDecodedData['category_ids']) < 0)
140+
&& (!isset($candidateDecodedData['ids']) || count($candidateDecodedData['ids']) < 0)
137141
&& (!isset($candidateDecodedData['page_ids']) || count($candidateDecodedData['page_ids']) < 0)) {
138142
return false;
139143
}
140144

145+
// @todo Remove on 3.16.0
141146
if (isset($decodedData['product_ids'])
142147
&& count($decodedData['product_ids']) + count($candidateDecodedData['product_ids']) > $maxJobDataSize) {
143148
return false;
144149
}
145150

151+
// @todo Remove on 3.16.0
146152
if (isset($decodedData['category_ids'])
147153
&& count($decodedData['category_ids']) + count($candidateDecodedData['category_ids']) > $maxJobDataSize) {
148154
return false;
149155
}
150156

157+
// @todo Remove on 3.16.0
151158
if (isset($decodedData['page_ids'])
152159
&& count($decodedData['page_ids']) + count($candidateDecodedData['page_ids']) > $maxJobDataSize) {
153160
return false;
154161
}
155162

163+
if (isset($decodedData['ids'])
164+
&& count($decodedData['ids']) + count($candidateDecodedData['ids']) > $maxJobDataSize) {
165+
return false;
166+
}
167+
156168
return true;
157169
}
158170

@@ -173,6 +185,7 @@ public function merge(Job $mergedJob)
173185

174186
$dataSize = $this->getDataSize();
175187

188+
// @todo Remove useless code on 3.16.0
176189
if (isset($decodedData['product_ids'])) {
177190
$decodedData['product_ids'] = array_unique(array_merge(
178191
$decodedData['product_ids'],
@@ -194,6 +207,13 @@ public function merge(Job $mergedJob)
194207
));
195208

196209
$dataSize = count($decodedData['page_ids']);
210+
} elseif (isset($decodedData['ids'])) {
211+
$decodedData['ids'] = array_unique(array_merge(
212+
$decodedData['ids'],
213+
$mergedJobDecodedData['ids']
214+
));
215+
216+
$dataSize = count($decodedData['ids']);
197217
}
198218

199219
$this->setDecodedData($decodedData);

0 commit comments

Comments
 (0)