diff --git a/app/modules/loyalty/tasks/__init__.py b/app/modules/loyalty/tasks/__init__.py index 7697ad53..a624efb5 100644 --- a/app/modules/loyalty/tasks/__init__.py +++ b/app/modules/loyalty/tasks/__init__.py @@ -3,17 +3,24 @@ Loyalty module Celery tasks. Background tasks for: +- Transactional notification emails (enrollment, welcome bonus, reward + ready, points expiring/expired) — dispatched on-demand by services - Point expiration (daily at 02:00) - Wallet synchronization (hourly) Task registration is handled by the module definition in definition.py -which specifies the task paths and schedules. +which specifies the task paths and schedules. The imports below must +mention every task module that defines a @shared_task — otherwise the +celery worker's task-discovery walk imports the package but never sees +the decorated function, so calls to .delay() fail with NotRegistered. """ +from app.modules.loyalty.tasks.notifications import send_notification_email from app.modules.loyalty.tasks.point_expiration import expire_points from app.modules.loyalty.tasks.wallet_sync import sync_wallet_passes __all__ = [ "expire_points", + "send_notification_email", "sync_wallet_passes", ]