RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • Endpoint概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件

    • Rest Endpoint
    • Websocket Endpoint
    • MQTT Endpoint
    • Schedule Endpoint
      • Type
      • 启动配置
      • 配置cron
      • cron格式
      • 示例
    • Net Endpoint
    • Kafka Endpoint
    • Nats Endpoint
    • Redis Sub Endpoint
    • Redis Steam Endpoint
    • Rabbitmq Endpoint
    • MYSQL CDC Endpoint
    • OPC_UA Endpoint
    • GRPC Stream Endpoint
    • Beanstalkd Endpoint
    • Wukongim Endpoint
    • 扩展Endpoint
目录

Schedule Endpoint

Schedule Endpoint 用来创建和启动定时任务。使用cron表达式定义任务触发时间。

# Type

endpoint/schedule

# 启动配置

无

# 配置cron

router.From 配置cron表达式。例如:

  //每隔1秒执行
  router1 := endpoint.NewRouter().From("*/1 * * * * *").Process(func(router *endpoint.Router, exchange *endpoint.Exchange) bool {
      exchange.In.GetMsg().Type = "TEST_MSG_TYPE1"
      fmt.Println("router1 执行...", time.Now().UnixMilli())
      //业务逻辑,例如读取文件、定时去拉取一些数据交给规则链处理

      return true
  }).
//指定交给哪个规则链ID处理
To("chain:default").End()
1
2
3
4
5
6
7
8
9
10

其他参数,参考 路由Router 定义。

# cron格式

cron表达式表示一组时间,使用6个空格分隔的字段。例如:* * * * * * 从左往右字段分别代表:

字段 是否必须 允许值 允许特殊字符
Seconds Yes 0-59 * / , -
Minutes Yes 0-59 * / , -
Hours Yes 0-23 * / , -
Day of month Yes 1-31 * / , - ?
Month Yes 1-12 或者 JAN-DEC * / , -
Day of week Yes 0-6 或者 SUN-SAT * / , - ?

注意:Month和Day of week字段值不区分大小写。"SUN"、"Sun"和"sun"都是可以允许的。

也可以使用几个预定义的变量来代替cron表达式。

变量 描述 等价于
@yearly (or @annually) 每年1月1日0点运行一次 0 0 0 1 1 *
@monthly 每月1号0点运行一次 0 0 0 1 * *
@weekly 每周周日0点运行一次 0 0 0 * * 0
@daily (or @midnight) 每天0点允许一次 0 0 0 * * *
@hourly 每小时整点 0 0 * * * *

# 示例

scheduleEndpoint := endpoint.New(schedule.Type, config, nil)

//每隔1秒执行
router1 := endpoint.NewRouter().From("*/1 * * * * *").Process(func(router *endpoint.Router, exchange *endpoint.Exchange) bool {
  exchange.In.GetMsg().Type = "TEST_MSG_TYPE1"
  fmt.Println("router1 执行...", time.Now().UnixMilli())
  //业务逻辑,例如读取文件、定时去拉取一些数据交给规则链处理
  return true
}).
//指定交给哪个规则链ID处理
To("chain:default").End()
//添加任务路由
routeId1, err := scheduleEndpoint.AddRouter(router1)
//启动任务
err = scheduleEndpoint.Start()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

以下是使用endpoint的示例代码:

  • RestEndpoint (opens new window)
  • WebsocketEndpoint (opens new window)
  • MqttEndpoint (opens new window)
  • ScheduleEndpoint (opens new window)
  • NetEndpoint (opens new window)
  • KafkaEndpoint (opens new window) (扩展组件库)
在 GitHub 上编辑此页 (opens new window)
上次更新: 2025/04/02, 01:29:50
MQTT Endpoint
Net Endpoint

← MQTT Endpoint Net Endpoint→

Theme by Vdoing | Copyright © 2023-2025 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式