actinia-org / actinia-module-plugin

Contains actinia module self-description and process-chain-template management and processing
Apache License 2.0
2 stars 3 forks source link

Add redis cache for grass modules #9

Closed mmacata closed 3 years ago

mmacata commented 3 years ago

The openeo spec wants the full description for the list of all processes. To map this, the parameter &record=full was already implemented together with a module filter (eg. &family=v) to not run into a timeout. For openeo, the r-family is the most interesting one, but is so large that it often runs into a timeout as well so that the openeo-grassgis-driver cannot use the grass gis modules. This PR enables a cache for the GRASS GIS modules in the redis db. For requests against /grass_modules and /modules, all once requested modules are written into the db. When the endpoint to describe one module is requested (grass_modules/r.slope.aspect), the interface-description is requested again and the entry in the db will be replaced to allow an api based mechanism to reload the cache, e.g. when a module has a new parameter. The cache is not yet used when a template description is loaded, which also takes a while, especially when the template uses many grass modules. This can be implemented later if needed.