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;
|
||||
}
|
||||
|
||||
function count() : int
|
||||
{
|
||||
return count($this->file2deps);
|
||||
}
|
||||
|
||||
function exists(string $file) : bool
|
||||
{
|
||||
return isset($this->file2deps[$file]);
|
||||
}
|
||||
|
||||
function getAffectedFiles(string $file) : array
|
||||
{
|
||||
if(!isset($this->file2deps[$file]))
|
||||
|
|
|
@ -151,7 +151,7 @@ class ConfigManager
|
|||
|
||||
$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'));
|
||||
|
||||
config_log("Affected files: {$affected_files->count()}");
|
||||
|
@ -163,6 +163,7 @@ class ConfigManager
|
|||
);
|
||||
$update_result = self::_updateCache($update_params);
|
||||
|
||||
//let's clear internal cache once the update procedure is done
|
||||
$this->cache->clear();
|
||||
|
||||
$this->_updateFileMap($req, $affected_files, $added_files, $removed_files);
|
||||
|
@ -213,10 +214,9 @@ class ConfigManager
|
|||
|
||||
if($req->mode === ConfigUpdateMode::Force)
|
||||
{
|
||||
$added_files = $req->files->getAllFiles();
|
||||
//let's rebuild the file map
|
||||
$fs_cache_map->init($added_files);
|
||||
config_log("File map init: ".count($added_files));
|
||||
$fs_cache_map->init($req->files->getAllFiles());
|
||||
config_log("File map init: ".$fs_cache_map->count());
|
||||
}
|
||||
else if($req->mode === ConfigUpdateMode::DetectChanged)
|
||||
{
|
||||
|
@ -249,10 +249,11 @@ class ConfigManager
|
|||
$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
|
||||
if($req->mode != ConfigUpdateMode::Force)
|
||||
$fs_cache_map->update($added_files, $removed_files);
|
||||
$this->_saveFileMap();
|
||||
}
|
||||
|
@ -296,10 +297,6 @@ class ConfigManager
|
|||
foreach($affected_by_file as $dep)
|
||||
$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)
|
||||
|
|
Loading…
Reference in New Issue