Skip to content

定时任务

本项目中的定时任务采用的是灵活,可靠和快速的分布式任务重试和分布式任务调度平台 Snail Job

部署服务端(任务调度中心)

首先,单独部署一套任务调度平台的服务端(任务调度中心)环境,开发期间也可以直接使用本项目提供的 continew-admin-extension/continew-admin-job-server 服务端项目,方便快速开发使用,接下来就介绍下如何使用该服务端项目。

  1. 创建数据库 continew-admin-job,用于任务调度中心数据存储使用。
  2. 修改 application-dev.yml 配置文件中的数据源配置。
  3. 启动 continew-admin-job-server 中的 JobServerApplication 入口程序。
  4. 启动完成后,continew-admin-job 数据库会自动初始化相关数据表。
  5. 访问 http://localhost:8001/snail-job,默认用户及密码:admin/admin

修改客户端

  1. 根据任务调度中心的实际使用情况,修改 continew-admin-webapiapplication-dev.yml 中的任务调度配置。
  2. 默认情况下,dev 环境的任务调度配置是被关闭的,以防止控制台一直打印连接错误,所以当你有需要使用时,需要启用任务调度相关配置。
yaml
snail-job:
  enabled: true

编写定时任务

根据 Snail Job API 编写定时任务程序执行代码,更多种方式请查看其官方文档。

java
@Component
public class Test {
    // name 属性就是创建任务时使用到的执行器名称
    @JobExecutor(name = "test")
    public void test() {
        SnailJobLog.REMOTE.info("测试日志输出:{}", LocalDateTime.now());
    }
}

启动或重新启动 Admin 项目。

创建定时任务

任务程序方面准备好之后,可访问 ContiNew Admin 项目创建及管理定时任务(目前尚不支持自动注册定时任务)。

打开 [任务调度/任务管理] 菜单,点击 [新增],在弹出的新增对话框中根据需要,依次配置好定时任务,如图所示:

20240804152612

创建好任务之后,可以启用定时任务或在对应任务记录后点击 [执行],此操作会立即下发一次执行请求。然后,可点击 [日志] 跳转到 [任务日志] 菜单页面,查看对应定时任务执行记录。

友情提示

你还可以直接在 Snail Job 的服务端界面创建定时任务,本项目目前是直接对接的 Snail Job API,所以可以说仅仅是页面不同,数据来源则是一致的。

参考资料

1.Snail Job 定时任务:https://snailjob.opensnail.com/docs/quickstart/abilityuse/schedule_task.html