filed
Job queue using FUSE
git clone git://mccd.space/filed
| Log | Files | Refs | README | LICENSE |
config.go (1125B)
1 package store
2
3 type Config struct {
4 MaxAttempts int `json:"max_attempts"`
5 TimeoutSec int `json:"timeout_sec"`
6 // Max amount of concurrent jobs
7 MaxJobCount int `json:"max_job_count"`
8 BackoffMult int `json:"backoff_mult"`
9 BackoffBase int `json:"backoff_base"`
10 }
11
12 func (st *Store) UpdateConfig(conf Config) error {
13 query := `
14 UPDATE config
15 SET max_attempts = ?, timeout_sec = ?, max_job_count = ?, backoff_mult = ?, backoff_base = ?
16 WHERE id = 0
17 `
18 _, err := st.db.Exec(query, conf.MaxAttempts, conf.TimeoutSec, conf.MaxJobCount, conf.BackoffMult, conf.BackoffBase)
19 st.mu.Lock()
20 st.config = conf
21 st.mu.Unlock()
22 return err
23 }
24
25 func (st *Store) PopulateConfig() {
26 conf := Config{}
27 query := `SELECT max_attempts, timeout_sec, max_job_count, backoff_mult, backoff_base FROM config WHERE id = 0`
28 err := st.db.QueryRow(query).Scan(&conf.MaxAttempts, &conf.TimeoutSec, &conf.MaxJobCount, &conf.BackoffMult, &conf.BackoffBase)
29 if err != nil {
30 panic(err)
31 }
32 st.mu.Lock()
33 st.config = conf
34 st.mu.Unlock()
35 }
36
37 func (st *Store) GetConfig() (conf Config) {
38 st.mu.RLock()
39 defer st.mu.RUnlock()
40 return st.config
41 }