package tasks
import (
"github.com/go-pg/pg/v10"
"github.com/pkg/errors"
"sync"
"time"
"github.com/tribalwarshelp/cron/internal/cron/queue"
)
type task struct {
db *pg.DB
queue queue.Queue
cachedLocations sync.Map
}
func (t *task) loadLocation(timezone string) (*time.Location, error) {
val, ok := t.cachedLocations.Load(timezone)
if ok {
return val.(*time.Location), nil
location, err := time.LoadLocation(timezone)
if err != nil {
return nil, errors.Wrap(err, "task.loadLocation")
t.cachedLocations.Store(timezone, location)
return location, nil