mirror of
https://github.com/mudler/LocalAI.git
synced 2026-04-01 21:53:01 -04:00
* feat: add distributed mode (experimental) Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix data races, mutexes, transactions Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fixups Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix events and tool stream in agent chat Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * use ginkgo Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * fix(cron): compute correctly time boundaries avoiding re-triggering Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * enhancements, refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * do not flood of healthy checks Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * do not list obvious backends as text backends Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * tests fixups Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * refactoring and consolidation Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Drop redundant healthcheck Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * enhancements, refactorings Signed-off-by: Ettore Di Giacinto <mudler@localai.io> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
30 lines
976 B
Go
30 lines
976 B
Go
package agentpool
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/mudler/LocalAI/core/schema"
|
|
)
|
|
|
|
// JobPersister abstracts task/job persistence between file-backed and DB-backed modes.
|
|
// The in-memory syncmap remains the primary store; the persister provides secondary
|
|
// persistence and authoritative reads (DB mode only).
|
|
type JobPersister interface {
|
|
// Write-through persistence (called after in-memory mutation)
|
|
SaveTask(userID string, task schema.Task) error
|
|
DeleteTask(taskID string) error
|
|
SaveJob(userID string, job schema.Job) error
|
|
DeleteJob(jobID string) error
|
|
|
|
// Authoritative reads — DB returns fresh data; file returns nil, nil
|
|
GetJob(jobID string) (*schema.Job, error)
|
|
ListJobs(userID, taskID, status string, limit int) ([]schema.Job, error)
|
|
|
|
// Bootstrap (load all persisted data at startup)
|
|
LoadTasks(userID string) ([]schema.Task, error)
|
|
LoadJobs(userID string) ([]schema.Job, error)
|
|
|
|
// Maintenance
|
|
CleanupOldJobs(retention time.Duration) (int64, error)
|
|
}
|