124 Commits

Author SHA1 Message Date
danial
dd6dbdee84 docs(frontend): 更新前端开发指南文档
- 补充了详细的命令说明和使用场景
- 完善了架构概述中的技术栈描述
- 重新组织了关键目录结构的说明
- 增强了API集成部分的配置细节
- 扩展了组件架构和状态管理的描述
- 新增了静态导出和部署相关的配置说明
- 完善了环境变量和Bun配置的文档
- 添加了代码生成工作流的详细步骤
- 增加了样式系统和错误处理的说明
- 补充了OpenTelemetry集成和部署相关内容
2025-10-04 13:59:53 +08:00
danial
e7b36006d3 fix(docker): update PostgreSQL volume name to postgres_data_18 2025-09-30 21:07:24 +08:00
danial
e56cda4b16 build(deps): 升级 PostgreSQL 版本并更新数据目录
- 将 PostgreSQL 镜像从 17-alpine 升级到 18-alpine
- 更新 PostgreSQL 数据卷挂载路径至 postgres_data_18
2025-09-30 19:29:39 +08:00
danial
8bc8e1c664 feat(links): 实现基于权重的轮询算法和链接管理功能
- 新增链接权重字段,支持1-100范围设置
- 修改轮询算法为基于权重的选择机制
- 更新链接API接口返回统一使用LinkInfo模型
- 添加更新链接权重的PATCH端点
- 调整链接仓库查询逻辑,只包含激活状态链接
- 迁移链接相关Pydantic模型到task模块统一管理
- 修改分页响应格式为通用PaginatedResponse包装
- 禁用OpenTelemetry监控配置
2025-09-30 17:02:02 +08:00
danial
736a7467e6 ```
feat(config): 调整定时任务执行频率与批处理数量

将订单批量处理的定时任务执行间隔从每30秒一次调整为每10秒一次,
同时将每批次最大处理订单数从100调整为5,以优化系统负载和任务响应速度。
此外,生产环境的Worker最大任务数配置由100调整为40,进一步控制资源使用。
```
2025-09-20 02:34:21 +08:00
danial
cbc02a6ba9 ```
refactor(docker): 调整 Playwright 浏览器目录路径

将 Playwright 浏览器的挂载路径从 /app/data/playwright-browsers
调整为 /app/playwright-browsers,以优化容器内目录结构。同时
清理了 backend Dockerfile 中不必要的目录创建操作。
```
2025-09-20 02:23:30 +08:00
danial
c03a811fbd refactor订单处理和配置
- 优化订单处理逻辑,增加特殊错误处理
- 调整配置文件格式,提高可读性
- 修复部分代码缩进和格式问题
- 移除未使用的导入和变量
2025-09-20 02:16:40 +08:00
danial
4df2793ad7 feat(telemetry): 移除日志与 trace 关联配置并优化 OTLP 导出器
- 删除 `OTEL_PYTHON_LOG_CORRELATION` 配置项
- 为 OTLP Log 导出器启用 Gzip 压缩
- 移除冗余的日志关联初始化逻辑

refactor(worker): 调整 Worker 初始化和关闭钩子函数签名

- 统一 `init_worker` 函数参数为必填 `ctx`
- 将 `worker_process_shutdown` 改为异步函数,适配 Arq 并移除 Celery 相关注释
- 更新关闭回调逻辑,确保 Playwright 正确关闭

refactor(tasks): 优化批量订单处理任务

- 移除部分冗余日志输出
- 简化任务入队参数,移除默认值配置
- 移除任务开始和结束的 emoji 日志提示
- 引入 `uuid` 模块以支持任务唯一标识生成(后续使用)
2025-09-20 01:47:53 +08:00
danial
cd4360ac06 refactor(arq_tasks): enhance logging for batch order processing and improve error handling 2025-09-20 01:19:34 +08:00
danial
beaf214057 refactor(arq_tasks): log batch order processing start and increase max orders per batch to 100
fix(docker-compose): add restart policy to all services for improved resilience
2025-09-20 00:53:33 +08:00
danial
522b7e7733 refactor(config): remove MAX_THREADS and WORKER_MAX_CONCURRENT_TASKS from configuration files and task scheduler 2025-09-19 22:12:48 +08:00
danial
0022349f55 refactor(arq): 重构 Arq worker 配置和启动逻辑
- 移除独立的 arq_worker.py 文件,将配置和启动逻辑整合到 config_arq.py
- 新增 ArqWorkerConfig 类封装 Arq worker 配置
- 更新 Dockerfile 和 docker-compose 文件,添加新的环境变量
- 优化 run_with_graceful_shutdown.py 和 start_arq_worker.py 脚本
2025-09-19 21:47:09 +08:00
danial
8625938bfc fix(playwright): add wait for network idle state before proceeding with order actions 2025-09-19 19:28:43 +08:00
danial
b616618947 ```
feat(env): 移除文件存储目录配置项

从环境变量配置文件中移除了 UPLOAD_DIR、SNAPSHOT_DIR 和 HTML_DIR 三个配置项,
这些配置现在通过其他方式管理,以简化环境配置并提高安全性。
```
2025-09-19 19:11:48 +08:00
danial
00ab9f48fc refactor(data): 重构数据目录结构并优化相关配置
- 移除 screenshot 相关代码和配置
- 修改 SNAPSHOT_DIR 路径为复数形式
- 更新 Dockerfile 和 docker-compose 文件中的数据目录结构
- 优化 playwright_service 中的等待逻辑
- 修改异常日志输出,使用 traceback 提供更详细的信息
2025-09-19 19:11:39 +08:00
danial
51efaf621d fix(docker): update environment variables in docker-compose for secure credentials 2025-09-19 18:42:24 +08:00
danial
34f81beb92 feat(docker): add .env.production for secure environment variable management 2025-09-19 18:32:31 +08:00
danial
5935f83dd8 fix(docker): update database and Redis connection strings with secure credentials 2025-09-19 18:25:26 +08:00
danial
e1fbacd202 fix(playwright): update headless mode configuration based on container status 2025-09-19 18:01:10 +08:00
danial
7d80ffa06e refactor(docker): 移除不必要的 test_gunicorn.py 文件复制
feat(config): 添加日志关联配置和日志级别设置
feat(telemetry): 增强日志处理,支持 trace context 注入
2025-09-19 17:58:31 +08:00
danial
f2c4cef3a3 feat(core): 重构 TelemetryManager 并添加日志功能
- 重构 TelemetryManager 类,优化 Tracing 和 Metrics 的初始化逻辑- 添加对 OpenTelemetry 日志功能的支持
- 实现自动化 instrumentation 的设置和管理
- 新增 get_tracer 和 get_meter 函数,简化外部调用
-移除冗余的测试脚本
2025-09-19 17:46:44 +08:00
danial
301720b57c feat(core): 简化 OpenTelemetry 配置并优化相关功能
- 移除了复杂的 OpenTelemetry 配置项,改为使用简化配置
- 更新了环境变量和配置文件以适应新的简化配置
- 调整了 Docker 配置,优化了文件存储路径
- 移除了未使用的优化器和导出器代码
- 优化了礼品卡服务和任务状态管理
2025-09-19 17:46:12 +08:00
danial
628bbcba0b ```
refactor(backend): 更新配置和代码以符合新需求

- 修改 .env 文件中的 APP_NAME 和 DATABASE_URL 配置。
- 在 orders.py 中更新导入和响应模型,移除不必要的字段并更新礼品卡处理逻辑。
- 在 arq_health.py、arq_worker.py、celery_app.py、config_arq.py、playwright_manager.py、state_manager.py、task_scheduler.py、worker_init.py 等文件中进行格式化和注释清理。
- 更新 models/orders.py 以确保礼品卡始终返回列表。
- 在 gift_card_service.py 中添加更新礼品卡信息成功的方法。
- 在 health_service.py 中进行格式化。
- 在 order_business_service.py 中简化 update_order_status 方法的定义。
- 在 playwright_service.py 中更新礼品卡处理逻辑和日志记录。
- 在 task_service.py 中更新礼品卡处理逻辑和日志记录。
- 在 user_data_service.py 中更新任务函数
2025-09-18 17:59:09 +08:00
danial
8ad2a5366a refactor(backend): 将Celery替换为Arq进行协程任务处理
本次提交将后端的任务队列系统从Celery迁移到了Arq,以支持基于协程的任务处理。主要改动包括:
- 更新文档和配置文件,反映架构变化。
- 修改健康检查和服务初始化逻辑,以适应Arq的使用。
- 移除与Celery相关的代码,并添加Arq任务定义和调度器。
- 更新Dockerfile和相关脚本,确保Arq worker能够正确运行。
- 调整API和业务服务中的任务处理逻辑,移除对Celery的依赖。

这些改动旨在提高系统的异步处理能力和整体性能。
2025-09-18 16:02:05 +08:00
danial
ccb2969663 refactor(playwright_manager.py): 优化Playwright管理器代码
- 移除了未使用的`sys`导入。
- 改进了`headless`选项值的处理逻辑,使其更易读。
- 增强了日志记录信息的格式,使其更加清晰。
- 在创建浏览器上下文时增加了重试机制,并使用配置的超时时间。

feat(docker-entrypoint.sh): 添加对beat和flower服务类型的支持

- 当`SERVICE_TYPE`为`beat`时,启动Celery Beat服务。
- 当`SERVICE_TYPE`为`flower`时,启动Celery Flower监控服务。
- 更新了错误提示信息,以反映新的服务类型选项。

test(test_playwright_manager.py): 添加Playwright管理器的单元测试

- 新增了一个测试类`TestDistributedPlaywrightManager`。
- 包含一个测试方法`test_create_context`,用于验证上下文创建功能。
2025-09-18 12:16:47 +08:00
danial
e0308edd0f refactor(entrypoint): 重构 Docker 入口点脚本并增强 Playwright 管理
- 设置时区
- 优化 Playwright 浏览器安装和检查流程
- 更新服务启动逻辑,支持 gunicorn 和 celery
-增加浏览器连接检查和重试机制
- 添加新上下文创建的超时控制
-改进错误日志记录
2025-09-18 10:50:10 +08:00
danial
a348f74c63 fix(playwright): 确保浏览器 headless 模式参数为布尔类型
- 在启动浏览器时,检查 headless 参数的类型
- 如果 headless 参数为字符串类型,将其转换为布尔类型
- 支持 "true", "1", "yes", "on" 等字符串作为 True 值
- 其他非布尔类型的 headless 参数将被转换为 True
2025-09-18 02:04:32 +08:00
danial
99d9ee503a fix(playwright): 确保浏览器 headless 模式参数为布尔类型
- 在启动浏览器时,检查 headless 参数的类型
- 如果 headless 参数为字符串类型,将其转换为布尔类型
- 支持 "true", "1", "yes", "on"
2025-09-18 01:48:42 +08:00
danial
3cc172a14a refactor(backend): 重命名订单状态枚举类
将 OrderResultStatus 重命名为 OrderStatus,更新相关引用和代码中的使用
2025-09-18 01:45:14 +08:00
danial
e4a723953d feat(backend): 优化容器环境下的 Playwright 运行配置
- 在 Dockerfile 中添加时区设置,确保日志时间正确
- 在 PlaywrightManager 中增加容器环境检测,调整启动参数
- 更新 AppleOrderProcessor 构造函数,支持传入 task_id
- 优化 process_apple_order_async 中的暂停检查逻辑
2025-09-18 01:27:24 +08:00
danial
cbfc29bedd feat(backend): 更新 Playwright 管理器并优化 Docker 部署
- 重写 PlaywrightManager 以支持分布式环境
- 更新 Dockerfile 和 entrypoint 脚本以优化容器化部署
- 添加运行时检查和自动修复机制
- 集成 Redis 状态监控和健康检查
- 更新文档以反映新功能和部署配置
2025-09-18 00:53:17 +08:00
danial
501c045971 feat(backend): 清空数据功能增加 Redis 支持
- 在清除所有数据操作中增加 Redis 数据清空步骤
- 新增 RedisManager.clear_all_data 方法实现 Redis 数据清空
- 优化清除数据后的消息提示,区分数据库和 Redis 清空情况
- 移除不必要的日志信息,简化代码
2025-09-18 00:19:08 +08:00
danial
c733a47229 refactor(middleware): 移除中间件中的 API 日志记录功能
- 注释掉 RequestLoggingMiddleware 中间件的添加
- 删除已弃用的 add_api_logging_middleware 函数
- 更新 main.py 中的中间件配置,移除相关调用
2025-09-18 00:08:39 +08:00
danial
ef53bda5b6 refactor(data): 优化数据删除顺序并移除调试输出
- 调整表格删除顺序,确保先删除依赖表再删除被依赖表
- 移除前端数据删除时的调试输出
2025-09-17 23:52:50 +08:00
danial
45b4164533 refactor(frontend): 优化数据删除功能
- 在删除数据前添加控制台日志输出,便于调试
- 将删除按钮的禁用状态与删除操作的 pending 状态绑定,提高用户体验
2025-09-17 23:39:59 +08:00
danial
2856715392 refactor(frontend): 重构删除所有数据的对话框
- 更新了删除确认对话框的样式和布局
- 添加了最终确认对话框
- 优化了输入验证逻辑
- 调整了按钮样式和交互
- 改进了对话框的响应式布局
2025-09-17 23:27:18 +08:00
danial
b0b8e2f4bd perf(backend): 优化订单数据加载和日志记录
- 使用 selectinload 优化订单关联数据的加载,提高查询效率
- 添加 Playwright 初始化日志记录
- 移除未使用的中间件引用
- 调整 Redis 服务配置
2025-09-17 23:04:29 +08:00
danial
d6816981ef build(docker): 更新 Docker 配置和忽略项
- 在 .dockerignore 文件中添加多个新目录和文件类型,避免不必要的文件被包含在镜像中
- 更新 backend/Dockerfile.worker,取消注释安装 playwright 浏览器和依赖的命令
2025-09-17 22:11:01 +08:00
danial
bb94cbd020 build(deploy): 简化 docker-compose 网络配置
- 移除了 apple-exchange-network 的自定义 IPAM 配置
- 保留了网络名称,其他默认配置由 Docker 自动处理
2025-09-17 21:51:27 +08:00
danial
e0b16d1d8e refactor(gift_card_service):优化礼品卡信息提交流程
- 移除了不必要的导入和日志记录语句
- 简化了礼品卡信息提交的逻辑
- 优化了异常处理和错误日志记录
2025-09-17 21:46:54 +08:00
danial
a09effd61f refactor(apple): 重构 Apple 订单处理流程
- 更新了进度步骤定义,使其更加详细地匹配实际执行流程
- 调整了各阶段的进度百分比分配,提高了初始化和产品页面阶段的比例
- 增加了更多中间步骤的进度更新,提高了订单处理流程的透明度
- 优化了部分操作的执行顺序,如添加到购物车后增加了等待响应和验证状态的步骤
- 细化了礼品卡处理流程,增加了更多中间步骤的进度更新
- 完善了订单提交阶段的进度更新,增加了准备提交订单和等待订单确认的步骤
2025-09-17 21:39:14 +08:00
danial
dd4f38f940 refactor(backend): 重构订单处理逻辑
- 更新了订单信息获取和处理的逻辑
- 优化了购物车、支付方式选择和配送信息填写等功能
- 移除了不必要的注释代码
- 调整了部分变量和方法的命名
2025-09-17 21:32:06 +08:00
danial
8c2174de14 fix(deploy): 修正 PostgreSQL 端口映射配置
- 将 "127.0.0.1:5444:5432" 修改为 "127.0.0.1:5444:5432"
- 修复了端口映射中的全角冒号问题,确保配置正确解析
2025-09-17 21:09:58 +08:00
danial
94c3c69618 infrastructure(docker): 更新 Docker Compose 配置
- 修改 PostgreSQL 服务的端口映射,限制为本地访问
- 移除 Redis 服务的端口映射和自定义命令
- 删除网络的 IPAM 配置
2025-09-17 21:05:01 +08:00
danial
ba06a0993c ci: 创建数据目录
- 在部署生产服务器之前,创建必要的数据目录
- 包括 Redis 数据、Postgres 数据、日志、屏幕截图等目录
2025-09-17 19:01:53 +08:00
danial
2dfc9de899 refactor(frontend): 优化代码结构和类型定义
- 更新 LinkInfo 类型定义,将 status 字段改为 LinkStatus 类型
- 移除未使用的导入和类型定义
- 优化部分组件的代码结构
- 统一错误处理方式
2025-09-17 18:54:41 +08:00
danial
49a7bf1125 build(env): 添加环境变量配置并更新 .gitignore 文件
- 在 backend 和 frontend 目录中更新 .gitignore 文件,排除特定环境变量文件
- 在 frontend 目录中添加 .env.local 和 .env.production 文件,配置 API 和遥测相关环境变量
2025-09-17 01:02:34 +08:00
danial
b09a2f531f infrastructure(docker): 添加日志和数据卷绑定
- 在 docker-compose.production.yml 文件中添加了 logs 和 data 卷的绑定
- 将主机的 /data/apple_exchange/logs 和 /data/apple_exchange/data 目录挂载到容器中
- 这个修改有助于持久化日志和数据,方便进行备份和分析
2025-09-17 00:59:00 +08:00
danial
01f9d2246b ci: 更新持续集成配置文件名称
- 将 .done.yml 重命名为 .drone.yml
- 此更改是为了适应 Drone CI 系统的配置文件命名规范
2025-09-17 00:55:27 +08:00
danial
44064b1601 ci: 更新生产环境部署配置
- 在 .done.yml 文件中添加了触发条件,仅在 master 分支推送时触发生产环境部署
- 保留了原有的部署命令,没有修改
2025-09-17 00:52:54 +08:00