feat(AI): 新增 AI执行器和任务处理器

- 新增 AI 执行器示例,内置多个 Bean 模式 AI任务处理器
- 与 spring-ai、ollama、dify等集成打通,支持快速开发 AI 类任务
- 新增OllamaChat 和 DifyWorkflow任务处理器
- 修复任务操作逻辑、Cron 组件、固定速度调度模式等问题
- 优化 Glue IDE 和 RollingLog 功能
- 升级多个项目依赖至较新稳定版本
3.1.0-release
xuxueli 5 months ago
parent ceafab3b8a
commit 36332fd374

@ -1191,7 +1191,7 @@ public void demoJobHandler() throws Exception {
- d、commandJobHandler通用命令行任务Handler业务方只需要提供命令行即可命令及参数之间通过空格隔开如任务参数 "ls la" 或 "pwd" 将会执行命令并输出数据;
#### 原生内置Bean模式任务AI执行器
为方便用户参考与快速使用,提供 “AI执行器” 并内置多个Bean模式任务Handler与spring-ai集成打通支持快速开发AI类任务如下
为方便用户参考与快速使用,提供 “AI执行器” 并内置多个Bean模式 AI任务Handler与spring-ai、ollama、dify等集成打通支持快速开发AI类任务如下
**AI执行器说明**
- AppNamexxl-job-executor-sample-ai
@ -2507,21 +2507,24 @@ public void execute() {
- a、本次升级数据模型及通讯协议向前兼容v2.4.*及后续版本可无缝升级;
- b、版本3.x开始要求Jdk17版本2.x及以下支持Jdk1.8。如对Jdk版本有诉求可选择接入不同版本;
### 7.38 版本 v3.0.1 Release Notes[规划中]
- 1、【新增】新增“AI执行器”示例并与spring-ai、Ollama、Dify等集成打通内置一系列AIXxlJob支持快速开发AI类任务xxl-job-executor-sample-springboot-ai
### 7.38 版本 v3.1.0 Release Notes[规划中]
- 1、【新增】新增提供 “AI执行器” 并内置多个Bean模式 AI任务Handler与spring-ai、ollama、dify等集成打通支持快速开发AI类任务。
- AppNamexxl-job-executor-sample-ai
- 执行器代码xxl-job-executor-sample-springboot-ai
```
// 说明ollamaJobHandler 内置在“AI执行器AppName = xxl-job-executor-sample-ai”中需要先新建执行器可参考如下SQL或自行创建
// 备注ollamaJobHandler 内置在“AI执行器AppName = xxl-job-executor-sample-ai”中需要先新建执行器可参考如下SQL或自行创建
INSERT INTO `xxl_job_group`(`app_name`, `title`, `address_type`, `address_list`, `update_time`)
VALUES ('xxl-job-executor-sample-ai', 'AI执行器Sample', 0, NULL, now());
```
- 2、【新增】新增通用 OllamaChat 任务ollamaJobHandler支持自定义prompt、input等输入信息示例参数如下
- 2、【新增】新增多个 Bean模式 AI任务Handler如 ollamaJobHandler、difyWorkflowJobHandler 等支持快速集成开发AI任务。
- a、ollamaJobHandler OllamaChat任务支持自定义prompt、input等输入信息。示例任务入参如下
```
{
"input": "{输入信息,必填信息}",
"prompt": "{模型prompt可选信息}"
}
```
- 3、【新增】新增通用 DifyWorkflow 任务difyWorkflowJobHandler支持自定义inputs、user等输入信息示例参数如下
- b、difyWorkflowJobHandlerDifyWorkflow 任务支持自定义inputs、user等输入信息示例参数如下
```
{
"inputs":{ // inputs 为dify工作流任务参数参数不固定结合各自 workflow 自行定义。
@ -2530,9 +2533,10 @@ INSERT INTO `xxl_job_group`(`app_name`, `title`, `address_type`, `address_list`,
"user": "{用户标识,选填}"
}
```
- 3、【修复】合并PR-3708、PR-3704解决固定速度调度模式下下次计算执行时间小概率间隔超长时不准问题。
- 4、【修复】任务操作逻辑优化修复边界情况下逻辑中断问题 (ISSUE-2081)。
- 5、【修复】调度中心Cron前端组件优化解决week配置与后端兼容性问题 (ISSUE-2220)。
- 6、【修复】合并PR-3708、PR-3704修复固定速度模式计算下次执行时间计算不准问题间隔秒数超过Int时触发
- 6、【修复】任务RollingLog权限逻辑调整修复非管理员账号越权访问问题 (ISSUE-3705)
- 7、【优化】Glue IDE调整版本回溯支持查看修改时间
- 8、【优化】任务RollingLog调整XSS过滤支持白名单排出提升日志易读性
- 9、【升级】多个项目依赖升级至较新稳定版本涉及 gson、groovy、spring/springboot、mysql 等;

@ -124,15 +124,18 @@ public class JobLogController {
}
@RequestMapping("/logDetailPage")
public String logDetailPage(@RequestParam("id") int id, Model model){
public String logDetailPage(HttpServletRequest request, @RequestParam("id") int id, Model model){
// base check
//ReturnT<String> logStatue = ReturnT.SUCCESS;
XxlJobLog jobLog = xxlJobLogDao.load(id);
if (jobLog == null) {
throw new RuntimeException(I18nUtil.getString("joblog_logid_unvalid"));
}
// valid permission
PermissionInterceptor.validJobGroupPermission(request, jobLog.getJobGroup());
// data
model.addAttribute("triggerCode", jobLog.getTriggerCode());
model.addAttribute("handleCode", jobLog.getHandleCode());
model.addAttribute("logId", jobLog.getId());

@ -29,7 +29,7 @@ public class NetUtil {
portTmp++;
}
}
portTmp = defaultPort--;
portTmp = defaultPort - 1;
while (portTmp > 0) {
if (!isPortUsed(portTmp)) {
return portTmp;

Loading…
Cancel
Save