Name Last Update
src/main Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...
pom.xml Loading commit data...

IoT Scheduler 项目

这是一个基于 Spring Boot 的定时任务应用程序,用于管理跨多个园区的 IoT 设备数据同步任务。

功能特性

  • 基于园区的调度:支持多个经开区(例如:怀宁、池州、潘集)。
  • 双向同步
    • 拉取 (Pull):从第三方平台拉取设备数据到我们的 IoT 平台。
    • 推送 (Push):将我们 IoT 平台的设备数据推送到第三方平台。
  • 企业级定制
    • 支持同一园区下不同企业的定制化同步逻辑(通过 EnterpriseSyncHandler 接口实现)。
  • 灵活配置
    • 定时任务的时间(Cron 表达式)可以在 application.yml 中配置,无需修改代码。

项目结构

  • com.iot.scheduler.task: 包含抽象基类 AbstractZoneScheduler
  • com.iot.scheduler.zone: 包含各园区的具体调度器实现(如 HuainingZoneScheduler)。
  • com.iot.scheduler.service: 定义了 EnterpriseSyncHandler 接口,用于处理特定企业的业务逻辑。
  • com.iot.scheduler.service.impl: 包含各企业的具体同步实现(如 HuainingPaperFactoryHandler)。
  • com.iot.scheduler.config: 配置类(如线程池配置)。

配置说明

您可以在 src/main/resources/application.yml 中调整定时任务的执行频率:

scheduler:
  huaining:
    pull: "0 0/5 * * * ?"   # 每5分钟执行一次
    push: "0 0/10 * * * ?"  # 每10分钟执行一次
  chizhou:
    pull: "0 0/5 * * * ?"
    push: "0 0/10 * * * ?"
  panji:
    pull: "0 0/5 * * * ?"
    push: "0 0/10 * * * ?"

如何运行

环境要求

  • Java 17+
  • Maven

启动应用

使用 Maven 插件启动:

mvn spring-boot:run

或者构建并运行 JAR 包:

mvn clean package
java -jar target/iot-scheduler-0.0.1-SNAPSHOT.jar

健康检查

检查服务是否正常运行: http://localhost:8080/health

项目部署

本分支部署在10.9.0.205环境,目录为/thingskit/iot-scheduler,每1分钟拉取和推送一次。 主要用于 三环朝辉纸塑有限公司、安庆市双龙纸业有限公司、安徽国宏新材料科技有限公司、安庆盛华纸质包装有限公司 四家企业从三色灯平台同步设备至IOT平台及IOT平台推送数据至电信园区平台