forked from erp-dev/erp
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from django.core.management.base import BaseCommand, CommandError
|
||
from api_v1.tasks import (
|
||
retry_external_printing_sync_failures_impl,
|
||
)
|
||
|
||
|
||
class Command(BaseCommand):
|
||
help = '基于失败记录重试外部印染 records 同步'
|
||
|
||
def add_arguments(self, parser):
|
||
parser.add_argument('--limit', type=int, default=None, help='最多重试多少条失败记录;不传则重试全部')
|
||
parser.add_argument(
|
||
'--run-date',
|
||
type=str,
|
||
default=None,
|
||
help='仅重试指定任务日期的失败记录,格式 YYYY-MM-DD',
|
||
)
|
||
parser.add_argument(
|
||
'--record-id',
|
||
action='append',
|
||
type=int,
|
||
default=None,
|
||
help='仅重试指定 external_record_id,可多次传入',
|
||
)
|
||
|
||
def handle(self, *args, **options):
|
||
limit = options.get('limit')
|
||
run_date_text = options.get('run_date')
|
||
record_ids = options.get('record_id') or []
|
||
try:
|
||
result = retry_external_printing_sync_failures_impl(
|
||
limit=limit,
|
||
run_date_text=run_date_text,
|
||
record_ids=record_ids,
|
||
)
|
||
except ValueError as exc:
|
||
raise CommandError(f'--run-date 格式非法: {run_date_text}') from exc
|
||
self.stdout.write(self.style.SUCCESS(str(result)))
|