worker

package
v0.4.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2022 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LabelStep = "step"
	LabelData = "data"
)

Variables

View Source
var (
	UpdateUserRecommendTotal = promauto.NewGauge(prometheus.GaugeOpts{
		Namespace: "gorse",
		Subsystem: "worker",
		Name:      "update_user_recommend_total",
	})
	OfflineRecommendStepSecondsVec = promauto.NewGaugeVec(prometheus.GaugeOpts{
		Namespace: "gorse",
		Subsystem: "worker",
		Name:      "offline_recommend_step_seconds",
	}, []string{LabelStep})
	OfflineRecommendTotalSeconds = promauto.NewGauge(prometheus.GaugeOpts{
		Namespace: "gorse",
		Subsystem: "worker",
		Name:      "offline_recommend_total_seconds",
	})
	CollaborativeFilteringIndexRecall = promauto.NewGauge(prometheus.GaugeOpts{
		Namespace: "gorse",
		Subsystem: "worker",
		Name:      "collaborative_filtering_index_recall",
	})
	MemoryInuseBytesVec = promauto.NewGaugeVec(prometheus.GaugeOpts{
		Namespace: "gorse",
		Subsystem: "worker",
		Name:      "memory_inuse_bytes",
	}, []string{LabelData})
)

Functions

This section is empty.

Types

type FeedbackCache

type FeedbackCache struct {
	Types     []string
	Cache     cmap.ConcurrentMap
	Client    data.Database
	ByteCount uintptr
}

FeedbackCache is the cache for user feedbacks.

func NewFeedbackCache

func NewFeedbackCache(client data.Database, feedbackTypes ...string) *FeedbackCache

NewFeedbackCache creates a new FeedbackCache.

func (*FeedbackCache) Bytes

func (c *FeedbackCache) Bytes() int

func (*FeedbackCache) GetUserFeedback

func (c *FeedbackCache) GetUserFeedback(userId string) ([]string, error)

GetUserFeedback gets user feedback from cache or database.

type ItemCache

type ItemCache struct {
	Data      map[string]*data.Item
	ByteCount uintptr
}

ItemCache is alias of map[string]data.Item.

func NewItemCache

func NewItemCache() *ItemCache

func (*ItemCache) Bytes

func (c *ItemCache) Bytes() int

func (*ItemCache) Get

func (c *ItemCache) Get(itemId string) (*data.Item, bool)

func (*ItemCache) GetCategory

func (c *ItemCache) GetCategory(itemId string) []string

func (*ItemCache) IsAvailable

func (c *ItemCache) IsAvailable(itemId string) bool

IsAvailable means the item exists in database and is not hidden.

func (*ItemCache) Set

func (c *ItemCache) Set(itemId string, item data.Item)

type LocalCache

type LocalCache struct {
	WorkerName string
	// contains filtered or unexported fields
}

LocalCache for the worker node.

func LoadLocalCache

func LoadLocalCache(path string) (*LocalCache, error)

LoadLocalCache loads cache from a local file.

func (*LocalCache) WriteLocalCache

func (c *LocalCache) WriteLocalCache() error

WriteLocalCache writes cache to a local file.

type Worker

type Worker struct {
	*config.Settings
	// contains filtered or unexported fields
}

Worker manages states of a worker node.

func NewWorker

func NewWorker(masterHost string, masterPort int, httpHost string, httpPort, jobs int, cacheFile string) *Worker

NewWorker creates a new worker node.

func (*Worker) Pull

func (w *Worker) Pull()

Pull user index and ranking model from master.

func (*Worker) Recommend

func (w *Worker) Recommend(users []data.User)

Recommend items to users. The workflow of recommendation is: 1. Skip inactive users. 2. Load historical items. 3. Load positive items if KNN used. 4. Generate recommendation. 5. Save result. 6. Insert cold-start items into results. 7. Rank items in results by click-through-rate. 8. Refresh cache.

func (*Worker) Serve

func (w *Worker) Serve()

Serve as a worker node.

func (*Worker) ServeMetrics

func (w *Worker) ServeMetrics()

ServeMetrics serves Prometheus metrics.

func (*Worker) SetOneMode

func (w *Worker) SetOneMode(settings *config.Settings)

func (*Worker) Sync

func (w *Worker) Sync()

Sync this worker to the master.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL