diff --git a/src/libs/services/scanner/impl/ScanStepAssociateArtistImages.cpp b/src/libs/services/scanner/impl/ScanStepAssociateArtistImages.cpp index 26c1bc0b..8dee1f27 100644 --- a/src/libs/services/scanner/impl/ScanStepAssociateArtistImages.cpp +++ b/src/libs/services/scanner/impl/ScanStepAssociateArtistImages.cpp @@ -41,7 +41,7 @@ namespace lms::scanner namespace { constexpr std::size_t readBatchSize{ 100 }; - constexpr std::size_t writeBatchSize{ 10 }; + constexpr std::size_t writeBatchSize{ 20 }; struct ArtistImageAssociation { @@ -170,15 +170,15 @@ namespace lms::scanner void updateArtistImages(db::Session& session, ArtistImageAssociationContainer& imageAssociations) { - if (imageAssociations.empty()) - return; - - auto transaction{ session.createWriteTransaction() }; - - for (std::size_t i{}; !imageAssociations.empty() && i < writeBatchSize; ++i) + while (!imageAssociations.empty()) { - updateArtistImage(session, imageAssociations.front()); - imageAssociations.pop_front(); + auto transaction{ session.createWriteTransaction() }; + + for (std::size_t i{}; !imageAssociations.empty() && i < writeBatchSize; ++i) + { + updateArtistImage(session, imageAssociations.front()); + imageAssociations.pop_front(); + } } } diff --git a/src/libs/services/scanner/impl/ScanStepAssociateReleaseImages.cpp b/src/libs/services/scanner/impl/ScanStepAssociateReleaseImages.cpp index b44b35ae..27767515 100644 --- a/src/libs/services/scanner/impl/ScanStepAssociateReleaseImages.cpp +++ b/src/libs/services/scanner/impl/ScanStepAssociateReleaseImages.cpp @@ -41,7 +41,7 @@ namespace lms::scanner namespace { constexpr std::size_t readBatchSize{ 100 }; - constexpr std::size_t writeBatchSize{ 10 }; + constexpr std::size_t writeBatchSize{ 20 }; struct ReleaseImageAssociation { @@ -166,15 +166,15 @@ namespace lms::scanner void updateReleaseImages(db::Session& session, ReleaseImageAssociationContainer& imageAssociations) { - if (imageAssociations.empty()) - return; - - auto transaction{ session.createWriteTransaction() }; - - for (std::size_t i{}; !imageAssociations.empty() && i < writeBatchSize; ++i) + while (!imageAssociations.empty()) { - updateReleaseImage(session, imageAssociations.front()); - imageAssociations.pop_front(); + auto transaction{ session.createWriteTransaction() }; + + for (std::size_t i{}; !imageAssociations.empty() && i < writeBatchSize; ++i) + { + updateReleaseImage(session, imageAssociations.front()); + imageAssociations.pop_front(); + } } }