Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
205c08b00d | ||
|
|
dad2a26611 | ||
|
|
f9e82eba02 | ||
|
|
661ebaf6c9 | ||
|
|
885c99ea66 | ||
|
|
24b3de2c38 | ||
|
|
4bc900f387 | ||
|
|
e7a1db2c16 | ||
|
|
c8cf318faa |
@@ -75,3 +75,18 @@ func (p Providers) Provide(config *viper.Viper) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// laters for run later funcs
|
||||||
|
var later []func() error
|
||||||
|
|
||||||
|
func Later(f func() error) {
|
||||||
|
later = append(later, f)
|
||||||
|
}
|
||||||
|
|
||||||
|
func RunLaterFuncs() {
|
||||||
|
for _, f := range later {
|
||||||
|
if err := f(); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,15 +1,23 @@
|
|||||||
package contracts
|
package contracts
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/riverqueue/river"
|
"github.com/riverqueue/river"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CronJob interface {
|
type CronJob interface {
|
||||||
Description() string
|
Args() []CronJobArg
|
||||||
Periodic() time.Duration
|
}
|
||||||
JobArgs() []river.JobArgs
|
|
||||||
InsertOpts() *river.InsertOpts
|
type JobArgs interface {
|
||||||
RunOnStart() bool
|
river.JobArgs
|
||||||
|
river.JobArgsWithInsertOpts
|
||||||
|
|
||||||
|
UniqueID() string
|
||||||
|
}
|
||||||
|
|
||||||
|
type CronJobArg struct {
|
||||||
|
RunOnStart bool
|
||||||
|
PeriodicInterval river.PeriodicSchedule
|
||||||
|
|
||||||
|
Arg JobArgs
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,15 @@ import "github.com/ThreeDotsLabs/watermill/message"
|
|||||||
|
|
||||||
type EventHandler interface {
|
type EventHandler interface {
|
||||||
Topic() string
|
Topic() string
|
||||||
PublishToTopic() string
|
Channel() Channel
|
||||||
|
PublishTo() (Channel, string)
|
||||||
Handler(msg *message.Message) ([]*message.Message, error)
|
Handler(msg *message.Message) ([]*message.Message, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Channel string
|
||||||
|
|
||||||
|
type EventPublisher interface {
|
||||||
|
Topic() string
|
||||||
|
Channel() Channel
|
||||||
|
Marshal() ([]byte, error)
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ func File[T any](key string) func(fiber.Ctx) (*multipart.FileHeader, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Local[T any](key string) func(fiber.Ctx) (T, error) {
|
func Local[T any](key any) func(fiber.Ctx) (T, error) {
|
||||||
return func(ctx fiber.Ctx) (T, error) {
|
return func(ctx fiber.Ctx) (T, error) {
|
||||||
v := fiber.Locals[T](ctx, key)
|
v := fiber.Locals[T](ctx, key)
|
||||||
return v, nil
|
return v, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user