topfans/backend/services/taskService
zerosaturation 1e8a7476e0 feat(task): register task:event MQ consumer
- consumer.go: +newHandleTaskEvent(dailySvc) adapter.TaskHandler
  - unmarshal TaskEventPayload -> delegate to ProcessTaskEvent
  - returns non-nil error on failure -> Asynq MaxRetry=3
- consumer.go: RegisterHandlers signature +dailySvc parameter
- consumer.go: register TaskEvent with QueueDefault, MaxRetry=3
- main.go: pass dailySvc to taskmq.RegisterHandlers

Now task:event MQ messages produced by:
- assetService/mq/producer.go (Phase F.1) for daily_mint
- frontend reportEvent RPC -> gateway (Phase F.2 callers) for daily_login/browse_asset/place_asset
are consumed asynchronously and routed to ProcessTaskEvent.

spec: docs/superpowers/specs/2026-07-21-daily-task-config-driven-design.md §3 F3 + §4.2
plan: docs/superpowers/plans/2026-07-21-daily-task-config-driven-impl.md Phase E

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 15:42:10 +08:00
..
client
config
model feat(task): GORM model + repository + ProcessTaskEvent engine 2026-07-27 15:41:35 +08:00
mq feat(task): register task:event MQ consumer 2026-07-27 15:42:10 +08:00
provider fix(backend): auth boundary — trusted identity from ctx (batch 2) 2026-07-23 01:12:35 +08:00
repository feat(task): GORM model + repository + ProcessTaskEvent engine 2026-07-27 15:41:35 +08:00
service feat(task): GORM model + repository + ProcessTaskEvent engine 2026-07-27 15:41:35 +08:00
worker
go.mod
go.sum
main.go feat(task): register task:event MQ consumer 2026-07-27 15:42:10 +08:00
port_test.go fix(config): port alignment + service test doubles (batch 4.1/4.5) 2026-07-24 14:02:14 +08:00