2bbdb00a4d
包含节点账本、每日清算,以及 Ubuntu 交互式部署脚本。 Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""独立的每日清算脚本。服务进程里的定时任务也会调用同一套结算函数。
|
|
|
|
示例:
|
|
python -m app.settle
|
|
python -m app.settle --date 2026-10-09
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import logging
|
|
from datetime import date
|
|
|
|
import app.models # noqa: F401
|
|
from app.database import Base, engine
|
|
from app.jobs.daily_yield import run_daily_yield_cron
|
|
|
|
|
|
def main(argv: list[str] | None = None) -> None:
|
|
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s %(message)s")
|
|
parser = argparse.ArgumentParser(description="按 UTC 日清算节点积分产出")
|
|
parser.add_argument("--date", dest="yield_date", help="清算日期 YYYY-MM-DD,默认上一个已结束的 UTC 日")
|
|
args = parser.parse_args(argv)
|
|
target = date.fromisoformat(args.yield_date) if args.yield_date else None
|
|
|
|
Base.metadata.create_all(bind=engine)
|
|
summary = run_daily_yield_cron(yield_date=target)
|
|
print(
|
|
f"yield_date={summary.yield_date} created={summary.created} "
|
|
f"skipped={summary.skipped} total_points={format(summary.total_points, 'f')} partial={summary.is_partial}"
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|