@@ -41,21 +41,23 @@ public function loadForStorageIds(array $storageIds): void {
4141 $ builder = $ this ->connection ->getQueryBuilder ();
4242 $ query = $ builder ->select (['id ' , 'numeric_id ' , 'available ' , 'last_checked ' ])
4343 ->from ('storages ' )
44- ->where ($ builder ->expr ()->in ('id ' , $ builder ->createNamedParameter (array_values ($ storageIds ), IQueryBuilder::PARAM_STR_ARRAY )));
45-
46- $ result = $ query ->executeQuery ();
47- while (($ row = $ result ->fetch ()) !== false ) {
48- $ normalizedRow = [
49- 'id ' => (string )$ row ['id ' ],
50- 'numeric_id ' => (int )$ row ['numeric_id ' ],
51- 'available ' => (bool )$ row ['available ' ],
52- 'last_checked ' => (int )$ row ['last_checked ' ],
53- ];
54-
55- $ this ->cache [$ normalizedRow ['id ' ]] = $ normalizedRow ;
56- }
44+ ->where ($ builder ->expr ()->in ('id ' , $ builder ->createParameter ('ids ' ), IQueryBuilder::PARAM_STR_ARRAY ));
45+
46+ foreach (array_chunk ($ storageIds , 1000 ) as $ chunk ) {
47+ $ query ->setParameter ('ids ' , $ chunk , IQueryBuilder::PARAM_STR_ARRAY );
5748
58- $ result ->closeCursor ();
49+ $ result = $ query ->executeQuery ();
50+ while (($ row = $ result ->fetch ()) !== false ) {
51+ $ normalizedRow = [
52+ 'id ' => (string )$ row ['id ' ],
53+ 'numeric_id ' => (int )$ row ['numeric_id ' ],
54+ 'available ' => (bool )$ row ['available ' ],
55+ 'last_checked ' => (int )$ row ['last_checked ' ],
56+ ];
57+
58+ $ this ->cache [$ normalizedRow ['id ' ]] = $ normalizedRow ;
59+ }
60+ }
5961 }
6062
6163 /**
0 commit comments