Improving code handling full rebuild of a cache map
Publish PHP Package / docker (push) Successful in 6s
Details
Publish PHP Package / docker (push) Successful in 6s
Details
This commit is contained in:
parent
83fa074f7d
commit
1b6bddd7ea
|
@ -261,6 +261,16 @@ class ConfigCacheFileMap
|
||||||
return $map;
|
return $map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function count() : int
|
||||||
|
{
|
||||||
|
return count($this->file2deps);
|
||||||
|
}
|
||||||
|
|
||||||
|
function exists(string $file) : bool
|
||||||
|
{
|
||||||
|
return isset($this->file2deps[$file]);
|
||||||
|
}
|
||||||
|
|
||||||
function getAffectedFiles(string $file) : array
|
function getAffectedFiles(string $file) : array
|
||||||
{
|
{
|
||||||
if(!isset($this->file2deps[$file]))
|
if(!isset($this->file2deps[$file]))
|
||||||
|
|
|
@ -151,7 +151,7 @@ class ConfigManager
|
||||||
|
|
||||||
$affected_files = $this->_getAffectedFiles($req, $added_files, $removed_files);
|
$affected_files = $this->_getAffectedFiles($req, $added_files, $removed_files);
|
||||||
|
|
||||||
//NOTE: at this poine taking into account only config files
|
//NOTE: at this point taking into account only config files
|
||||||
$affected_files->filter(fn($file) => str_ends_with($file, '.conf.js'));
|
$affected_files->filter(fn($file) => str_ends_with($file, '.conf.js'));
|
||||||
|
|
||||||
config_log("Affected files: {$affected_files->count()}");
|
config_log("Affected files: {$affected_files->count()}");
|
||||||
|
@ -163,6 +163,7 @@ class ConfigManager
|
||||||
);
|
);
|
||||||
$update_result = self::_updateCache($update_params);
|
$update_result = self::_updateCache($update_params);
|
||||||
|
|
||||||
|
//let's clear internal cache once the update procedure is done
|
||||||
$this->cache->clear();
|
$this->cache->clear();
|
||||||
|
|
||||||
$this->_updateFileMap($req, $affected_files, $added_files, $removed_files);
|
$this->_updateFileMap($req, $affected_files, $added_files, $removed_files);
|
||||||
|
@ -213,10 +214,9 @@ class ConfigManager
|
||||||
|
|
||||||
if($req->mode === ConfigUpdateMode::Force)
|
if($req->mode === ConfigUpdateMode::Force)
|
||||||
{
|
{
|
||||||
$added_files = $req->files->getAllFiles();
|
|
||||||
//let's rebuild the file map
|
//let's rebuild the file map
|
||||||
$fs_cache_map->init($added_files);
|
$fs_cache_map->init($req->files->getAllFiles());
|
||||||
config_log("File map init: ".count($added_files));
|
config_log("File map init: ".$fs_cache_map->count());
|
||||||
}
|
}
|
||||||
else if($req->mode === ConfigUpdateMode::DetectChanged)
|
else if($req->mode === ConfigUpdateMode::DetectChanged)
|
||||||
{
|
{
|
||||||
|
@ -249,11 +249,12 @@ class ConfigManager
|
||||||
$fs_cache_map->updateDepsForEntry($cache_entry);
|
$fs_cache_map->updateDepsForEntry($cache_entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($affected_files->count() > 0 || $added_files || $removed_files)
|
if($req->mode == ConfigUpdateMode::Force ||
|
||||||
|
$affected_files->count() > 0 ||
|
||||||
|
$added_files ||
|
||||||
|
$removed_files)
|
||||||
{
|
{
|
||||||
//in case of Force map was already cleared and initialized
|
$fs_cache_map->update($added_files, $removed_files);
|
||||||
if($req->mode != ConfigUpdateMode::Force)
|
|
||||||
$fs_cache_map->update($added_files, $removed_files);
|
|
||||||
$this->_saveFileMap();
|
$this->_saveFileMap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -296,10 +297,6 @@ class ConfigManager
|
||||||
foreach($affected_by_file as $dep)
|
foreach($affected_by_file as $dep)
|
||||||
$affected_files->addFile($dep, unique: true);
|
$affected_files->addFile($dep, unique: true);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//TODO: in case config file was removed do we actually need to rebuild all configs?
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if($req->mode === ConfigUpdateMode::Patch)
|
else if($req->mode === ConfigUpdateMode::Patch)
|
||||||
|
|
Loading…
Reference in New Issue