6 Commits

Author SHA1 Message Date
Rogee
205c08b00d feat: update Local function to accept any type for key parameter 2025-09-12 08:59:30 +08:00
Rogee
dad2a26611 feat: update EventHandler and EventPublisher interfaces to include Channel and PublishTo methods 2025-09-11 14:10:38 +08:00
rogeecn
f9e82eba02 feat: support later funcs 2025-03-21 19:13:42 +08:00
rogeecn
661ebaf6c9 feat: add unique id to cron job 2025-03-21 16:54:26 +08:00
rogeecn
885c99ea66 feat: job cancel 2025-03-17 11:42:13 +08:00
rogeecn
24b3de2c38 feat: remove kind 2025-03-17 10:32:11 +08:00
4 changed files with 25 additions and 5 deletions

View File

@@ -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)
}
}
}

View File

@@ -8,15 +8,16 @@ type CronJob interface {
Args() []CronJobArg Args() []CronJobArg
} }
type CronJobArgInterface interface { type JobArgs interface {
river.JobArgs river.JobArgs
river.JobArgsWithInsertOpts river.JobArgsWithInsertOpts
UniqueID() string
} }
type CronJobArg struct { type CronJobArg struct {
Kind string
RunOnStart bool RunOnStart bool
PeriodicInterval river.PeriodicSchedule PeriodicInterval river.PeriodicSchedule
Arg CronJobArgInterface Arg JobArgs
} }

View File

@@ -4,11 +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 { type EventPublisher interface {
Topic() string Topic() string
Channel() Channel
Marshal() ([]byte, error) Marshal() ([]byte, error)
} }

View File

@@ -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