Prevent error in redundancy scheduler

pull/5386/head
Chocobozzz 2022-10-31 08:57:52 +01:00
parent eb8da03d1c
commit 91c72729d8
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
1 changed files with 17 additions and 4 deletions

View File

@ -115,16 +115,29 @@ export class VideosRedundancyScheduler extends AbstractScheduler {
for (const redundancyModel of expired) {
try {
const redundancyConfig = CONFIG.REDUNDANCY.VIDEOS.STRATEGIES.find(s => s.strategy === redundancyModel.strategy)
// If the admin disabled the redundancy, remove this redundancy instead of extending it
if (!redundancyConfig) {
logger.info(
'Destroying redundancy %s because the redundancy %s does not exist anymore.',
redundancyModel.url, redundancyModel.strategy
)
await removeVideoRedundancy(redundancyModel)
continue
}
const { totalUsed } = await VideoRedundancyModel.getStats(redundancyConfig.strategy)
// If the administrator disabled the redundancy or decreased the cache size, remove this redundancy instead of extending it
if (!redundancyConfig || totalUsed > redundancyConfig.size) {
// If the admin decreased the cache size, remove this redundancy instead of extending it
if (totalUsed > redundancyConfig.size) {
logger.info('Destroying redundancy %s because the cache size %s is too heavy.', redundancyModel.url, redundancyModel.strategy)
await removeVideoRedundancy(redundancyModel)
} else {
await this.extendsRedundancy(redundancyModel)
continue
}
await this.extendsRedundancy(redundancyModel)
} catch (err) {
logger.error(
'Cannot extend or remove expiration of %s video from our redundancy system.',