IoT Scheduler 项目
这是一个基于 Spring Boot 的定时任务应用程序,用于管理跨多个园区的 IoT 设备数据同步任务。
功能特性
- 基于园区的调度:支持多个经开区(例如:怀宁、池州、潘集)。
-
双向同步:
- 拉取 (Pull):从第三方平台拉取设备数据到我们的 IoT 平台。
- 推送 (Push):将我们 IoT 平台的设备数据推送到第三方平台。
-
企业级定制:
- 支持同一园区下不同企业的定制化同步逻辑(通过
EnterpriseSyncHandler接口实现)。
- 支持同一园区下不同企业的定制化同步逻辑(通过
-
灵活配置:
- 定时任务的时间(Cron 表达式)可以在
application.yml中配置,无需修改代码。
- 定时任务的时间(Cron 表达式)可以在
项目结构
-
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平台推送数据至电信园区平台