mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
* tweak a bunch of logging and config make overall logs less verbose and chatty 1 minute computer check-in interval 3 minute snapshot interval remove CaptureLogger as it has same functionality as buffer logger add a WithPrefix to the Logger interface so sub-services can have different prefixes * fix some lint * fix lint... confused why this is coming up now
56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package service
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/featurebasedb/featurebase/v3/dax"
|
|
controllerclient "github.com/featurebasedb/featurebase/v3/dax/controller/client"
|
|
"github.com/featurebasedb/featurebase/v3/dax/queryer"
|
|
queryerhttp "github.com/featurebasedb/featurebase/v3/dax/queryer/http"
|
|
"github.com/featurebasedb/featurebase/v3/errors"
|
|
"github.com/featurebasedb/featurebase/v3/logger"
|
|
fbnet "github.com/featurebasedb/featurebase/v3/net"
|
|
)
|
|
|
|
// Ensure type implements interface.
|
|
var _ dax.Service = (*queryerService)(nil)
|
|
|
|
type queryerService struct {
|
|
uri *fbnet.URI
|
|
queryer *queryer.Queryer
|
|
logger logger.Logger
|
|
}
|
|
|
|
func New(uri *fbnet.URI, queryer *queryer.Queryer, logger logger.Logger) *queryerService {
|
|
return &queryerService{
|
|
uri: uri,
|
|
queryer: queryer,
|
|
logger: logger.WithPrefix("Queryer: "),
|
|
}
|
|
}
|
|
|
|
func (q *queryerService) Start() error {
|
|
// Start queryer service.
|
|
if err := q.queryer.Start(); err != nil {
|
|
return errors.Wrap(err, "starting queryer")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (q *queryerService) Stop() error {
|
|
return nil
|
|
}
|
|
|
|
func (q *queryerService) Address() dax.Address {
|
|
return dax.Address(q.uri.HostPort() + "/" + dax.ServicePrefixQueryer)
|
|
}
|
|
|
|
func (q *queryerService) HTTPHandler() http.Handler {
|
|
return queryerhttp.Handler(q.queryer)
|
|
}
|
|
|
|
func (q *queryerService) SetController(addr dax.Address) error {
|
|
controllercli := controllerclient.New(addr, q.logger)
|
|
q.queryer.SetController(controllercli)
|
|
return nil
|
|
}
|