baseline: 批次A-D 成果 + membership 半成品(测试红)
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user