# jdy_data_sync **Repository Path**: ancooly/jdy_data_sync ## Basic Information - **Project Name**: jdy_data_sync - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-21 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jdy_data_sync `jdy_data_sync` 是一个用于在本地数据库与简道云(Jiandaoyun)之间同步数据的 Spring Boot 应用程序。它支持多种数据类型的同步任务,并提供定时任务、线程池管理、API 限流、重试机制等功能。 ## 📌 功能特性 - **多任务类型支持**:支持 BOM、物料(MAT)、库存(SJL)等数据类型的双向同步。 - **定时任务调度**:基于 Quartz 实现动态任务调度,支持 Cron 表达式。 - **线程池管理**:使用自定义线程池提升并发处理能力。 - **API 限流与重试**:防止 API 超限调用,支持指数退避重试策略。 - **异常处理与日志记录**:统一异常处理机制,详细日志输出。 - **事务管理**:确保数据一致性,支持事务性批量处理。 ## 📦 技术栈 - Java 8+ - Spring Boot - MyBatis Plus - Quartz Scheduler - 简道云 API 集成 - HTTP Client(Apache HttpClient) - 多线程与并发处理 ## 📁 模块结构 - `config`:配置类,包括线程池、MyBatis Plus、定时任务等。 - `dao`:数据库访问层,使用 MyBatis Plus。 - `entity`:实体类,映射数据库表。 - `exception`:全局异常处理。 - `job`:任务调度核心逻辑,包含同步任务抽象类与具体实现。 - `util`:工具类,如 HTTP 请求、JSON 处理、限流器、重试策略等。 - `service`:服务接口定义。 ## ⚙️ 配置说明 - `application.yml`:主配置文件,包含数据库、线程池、简道云 API 等基础配置。 - `application-dev.yml` / `application-prod.yml`:开发与生产环境配置。 - `JdyConfig`:简道云相关配置,如 API 地址、请求频率限制、重试次数等。 ## 🚀 快速启动 1. **克隆项目** ```bash git clone https://gitee.com/ancooly/jdy_data_sync.git cd jdy_data_sync ``` 2. **配置环境** 修改 `src/main/resources/application-dev.yml` 中的数据库连接、简道云 API 配置等。 3. **构建项目** ```bash mvn clean package ``` 4. **运行项目** ```bash java -jar target/jdy_data_sync-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev ``` ## 📝 启动后行为 - 应用启动时会自动加载所有启用状态的同步任务。 - 根据任务配置的 Cron 表达式定时执行数据同步。 - 日志输出路径:`logs/dev/jdy-sync.log` ## 📎 同步任务配置 在数据库表 `sync_task` 中配置同步任务: | 字段名 | 说明 | |--------------------|--------------------------| | `task_name` | 任务名称 | | `task_type` | 任务类型(如 BOM、MAT) | | `cron_expression` | 定时任务表达式 | | `app_id` | 简道云应用 ID | | `entry_id` | 简道云数据表 ID | | `api_key` | 简道云 API 密钥 | | `last_data_id` | 上次同步的最后一条数据 ID | | `enabled` | 是否启用任务 | ## 📈 日志与监控 - 日志文件路径:`logs/dev/` - 支持日志滚动与压缩 - 异常信息统一记录并返回结构化错误响应 ## 🤝 贡献指南 欢迎提交 PR 或 Issue。请遵循以下规范: - 提交前确保单元测试通过 - 保持代码风格一致 - 添加必要的注释与文档 ## 📄 许可证 本项目采用 MIT License。详见 [LICENSE](LICENSE) 文件。