baseline: 批次A-D 成果 + membership 半成品(测试红)

This commit is contained in:
agent
2026-09-11 23:11:35 +08:00
commit b3f3095d53
311 changed files with 40540 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
"""电商渠道调度任务 actors(Dramatiq)。"""
import dramatiq
from .models import ChannelAccount
from . import services as channel_services
@dramatiq.actor(max_retries=3, time_limit=600_000)
def sync_orders_for_account(account_id: int):
"""单店铺拉单转单(仅处理已配置凭证的店铺)。"""
account = ChannelAccount.objects.get(pk=account_id, is_active=True)
return channel_services.sync_channel_orders(account, auto_convert=True)
@dramatiq.actor(max_retries=3, time_limit=900_000)
def sync_orders_for_all_active_accounts():
"""遍历全部启用且已配置凭证的店铺自动拉单(crontab 每日 02:00 触发)。"""
summary = []
for account in ChannelAccount.objects.filter(is_active=True).exclude(app_key=""):
try:
result = channel_services.sync_channel_orders(account, auto_convert=True)
summary.append({"shop_id": account.shop_id, **result})
except Exception as e:
summary.append({"shop_id": account.shop_id, "error": str(e)})
return summary