26 lines
511 B
Go

package adapters
import (
"context"
"fmt"
"time"
)
type WorkQueue interface {
Enqueue(ctx context.Context, key string, payload []byte) (result []byte, err error)
}
var ErrKeyNotFound = fmt.Errorf("key not found")
type Cache interface {
Get(key string) (result []byte, ts time.Time, err error)
Set(key string, payload []byte) (err error)
}
type QueueConsumer interface {
ConsumeQueue(
ctx context.Context,
taskFunc func(taskPayload []byte) (cacheKey string, result []byte, err error),
) error
}