Exemplo n.º 1
0
Arquivo: db.go Projeto: itpkg/ksana
func (p *Db) load(dir string) error {
	err := p.list_files(fmt.Sprintf("%s/mappers/%s", dir, p.cfg.Driver), func(d, n string) error {
		tmp := make(map[string]string, 0)
		if e := utils.FromToml(fmt.Sprintf("%s/%s", d, n), &tmp); e != nil {
			return e
		}
		for k, v := range tmp {
			p.mapper[k] = v
		}
		return nil
	})
	if err != nil {
		return err
	}

	//---------
	err = p.list_files(fmt.Sprintf("%s/migrations/%s", dir, p.cfg.Driver), func(d, n string) error {
		mig := Migration{}
		if e := utils.FromToml(fmt.Sprintf("%s/%s", d, n), &mig); e != nil {
			return e
		}
		mig.Id = n[0 : len(n)-5]
		p.migrations = append(p.migrations, &mig)
		return nil
	})
	return err
}
Exemplo n.º 2
0
Arquivo: run.go Projeto: itpkg/ksana
func Run(file string, store Store, logger logging.Logger) error {
	cfg := Configuration{}
	if err := utils.FromToml(file, &cfg); err != nil {
		return err
	}
	timeout := cfg.Timeout()
	queues := cfg.Queues()

	fn := func() {
		que, msg, err := store.Pop(timeout, queues...)
		if err == nil {
			logger.Info("get job %s@%s", msg.Id, que)
			wrk := workers[que]
			if wrk == nil {
				err = errors.New("unknown worker")
			} else {
				err = wrk.Do(msg)
			}
			if err == nil {

				logger.Info("job done %s@%s", msg.Id, que)
			} else {
				logger.Error("error on job %s@%s", msg.Id, que)
			}

		}
		store.Done(que, msg, err)
	}

	for i := 0; i < cfg.Workers; i++ {
		go fn()
	}
	return nil
}
Exemplo n.º 3
0
func (p *Configuration) Load(env string) error {
	return utils.FromToml(fmt.Sprintf("config/%s/database.toml", env), p)
}