mapblock accessor cache cfg
This commit is contained in:
parent
42580ee310
commit
bab8b483ed
@ -20,6 +20,12 @@ type Config struct {
|
|||||||
RenderingJobs int `json:"renderingjobs"`
|
RenderingJobs int `json:"renderingjobs"`
|
||||||
RenderingQueue int `json:"renderingqueue"`
|
RenderingQueue int `json:"renderingqueue"`
|
||||||
MapObjects *MapObjectConfig `json:"mapobjects"`
|
MapObjects *MapObjectConfig `json:"mapobjects"`
|
||||||
|
MapBlockAccessorCfg *MapBlockAccessorConfig `json:"mapblockaccessor"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MapBlockAccessorConfig struct {
|
||||||
|
Expiretime string `json:"expiretime"`
|
||||||
|
Purgetime string `json:"purgetime"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MapObjectConfig struct {
|
type MapObjectConfig struct {
|
||||||
@ -106,6 +112,11 @@ func ParseConfig(filename string) (*Config, error) {
|
|||||||
ATM: true,
|
ATM: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mapblockaccessor := MapBlockAccessorConfig{
|
||||||
|
Expiretime: "500ms",
|
||||||
|
Purgetime: "1000ms",
|
||||||
|
}
|
||||||
|
|
||||||
cfg := Config{
|
cfg := Config{
|
||||||
Port: 8080,
|
Port: 8080,
|
||||||
EnableRendering: true,
|
EnableRendering: true,
|
||||||
@ -117,6 +128,7 @@ func ParseConfig(filename string) (*Config, error) {
|
|||||||
RenderingJobs: runtime.NumCPU(),
|
RenderingJobs: runtime.NumCPU(),
|
||||||
RenderingQueue: 100,
|
RenderingQueue: 100,
|
||||||
MapObjects: &mapobjs,
|
MapObjects: &mapobjs,
|
||||||
|
MapBlockAccessorCfg: &mapblockaccessor,
|
||||||
}
|
}
|
||||||
|
|
||||||
info, err := os.Stat(filename)
|
info, err := os.Stat(filename)
|
||||||
|
@ -13,12 +13,13 @@ import (
|
|||||||
"mapserver/tiledb"
|
"mapserver/tiledb"
|
||||||
"mapserver/tilerenderer"
|
"mapserver/tilerenderer"
|
||||||
"mapserver/worldconfig"
|
"mapserver/worldconfig"
|
||||||
|
"time"
|
||||||
"github.com/sirupsen/logrus"
|
|
||||||
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"errors"
|
"errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -58,7 +59,17 @@ func Setup(p params.ParamsType, cfg *Config) *App {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//mapblock accessor
|
//mapblock accessor
|
||||||
a.BlockAccessor = mapblockaccessor.NewMapBlockAccessor(a.Blockdb)
|
expireDuration, err := time.ParseDuration(cfg.MapBlockAccessorCfg.Expiretime)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
purgeDuration, err := time.ParseDuration(cfg.MapBlockAccessorCfg.Purgetime)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
a.BlockAccessor = mapblockaccessor.NewMapBlockAccessor(a.Blockdb, expireDuration, purgeDuration)
|
||||||
|
|
||||||
//color mapping
|
//color mapping
|
||||||
a.Colormapping = colormapping.NewColorMapping()
|
a.Colormapping = colormapping.NewColorMapping()
|
||||||
|
@ -21,8 +21,8 @@ func getKey(pos *coords.MapBlockCoords) string {
|
|||||||
return fmt.Sprintf("Coord %d/%d/%d", pos.X, pos.Y, pos.Z)
|
return fmt.Sprintf("Coord %d/%d/%d", pos.X, pos.Y, pos.Z)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMapBlockAccessor(accessor db.DBAccessor) *MapBlockAccessor {
|
func NewMapBlockAccessor(accessor db.DBAccessor, expiretime, purgetime time.Duration) *MapBlockAccessor {
|
||||||
c := cache.New(500*time.Millisecond, 1000*time.Millisecond)
|
c := cache.New(expiretime, purgetime)
|
||||||
|
|
||||||
return &MapBlockAccessor{
|
return &MapBlockAccessor{
|
||||||
accessor: accessor,
|
accessor: accessor,
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
package mapblockaccessor
|
package mapblockaccessor
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/sirupsen/logrus"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"mapserver/coords"
|
"mapserver/coords"
|
||||||
"mapserver/db/sqlite"
|
"mapserver/db/sqlite"
|
||||||
"mapserver/testutils"
|
"mapserver/testutils"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSimpleAccess(t *testing.T) {
|
func TestSimpleAccess(t *testing.T) {
|
||||||
@ -30,7 +32,7 @@ func TestSimpleAccess(t *testing.T) {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
cache := NewMapBlockAccessor(a)
|
cache := NewMapBlockAccessor(a, 500*time.Millisecond, 1000*time.Millisecond)
|
||||||
mb, err := cache.GetMapBlock(coords.NewMapBlockCoords(0, 0, 0))
|
mb, err := cache.GetMapBlock(coords.NewMapBlockCoords(0, 0, 0))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user