Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -271,9 +271,10 @@ public static void getScannerReaderConfig(
if (reader == null) {
reader = new JSONObject();
}
JSONObject builderExtension = JSON.parseObject(job.getExtension());
JSONObject builderExtension =
job == null ? new JSONObject() : JSON.parseObject(job.getExtension());
JSONObject llm = JSONObject.parseObject(project.getConfig()).getJSONObject(CommonConstants.LLM);
String dataSourceType = job.getDataSourceType();
String dataSourceType = job == null ? null : job.getDataSourceType();

if (BuilderConstant.YU_QUE.equalsIgnoreCase(dataSourceType)) {
scanner.put(BuilderConstant.TYPE, BuilderConstant.YU_QUE);
Expand Down Expand Up @@ -420,6 +421,9 @@ public static void getScannerReaderConfig(
}

public static String getKagBuilderInput(BuilderJob builderJob, Date bizDate) {
if (builderJob == null) {
return "";
}
String input = builderJob.getFileUrl();
String dataSourceType = builderJob.getDataSourceType().toLowerCase();
if (BuilderConstant.ODPS.equalsIgnoreCase(dataSourceType)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,18 @@ public void check() {

@Override
public Boolean action() {
return builderJobService.deleteById(id) > 0;
BuilderJob builderJob = builderJobService.getById(id);
if (builderJob == null) {
return Boolean.FALSE;
}
boolean deleted = builderJobService.deleteById(id) > 0;
// Tear down the linked scheduler job so its DAG instances do not keep
// executing sync tasks against a BuilderJob that no longer exists.
// Otherwise reader/retrieval sync tasks dereference a null BuilderJob (see #732).
if (deleted && builderJob.getTaskId() != null) {
schedulerService.deleteJob(builderJob.getTaskId());
}
return deleted;
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ public class KagReaderSyncTask extends SyncTaskExecuteTemplate {
public SchedulerEnum.TaskStatus submit(TaskExecuteContext context) {
SchedulerJob job = context.getJob();
BuilderJob builderJob = builderJobService.getById(Long.valueOf(job.getInvokerId()));
if (builderJob == null) {
context.addTraceLog("builderJob %s not found, skip reader", job.getInvokerId());
return SchedulerEnum.TaskStatus.FINISH;
}
List<ChunkRecord.Chunk> chunks = readSource(context, builderJob);
SchedulerTask task = context.getTask();
String fileKey =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ public SchedulerEnum.TaskStatus submit(TaskExecuteContext context) {

SchedulerJob job = context.getJob();
BuilderJob builderJob = builderJobService.getById(Long.valueOf(job.getInvokerId()));
if (builderJob == null) {
context.addTraceLog("builderJob %s not found, skip retrieval", job.getInvokerId());
return SchedulerEnum.TaskStatus.FINISH;
}
String retrievals = builderJob.getRetrievals();
if (StringUtils.isBlank(retrievals)) {
context.addTraceLog("index not set");
Expand All @@ -79,6 +83,10 @@ public SchedulerEnum.TaskStatus submit(TaskExecuteContext context) {
Project project = projectService.queryById(job.getProjectId());
for (Long id : retrievalList) {
Retrieval retrieval = retrievalService.getById(id);
if (retrieval == null) {
context.addTraceLog("retrieval %s not found, skip", id);
continue;
}
context.addTraceLog("update index(%s) schema", retrieval.getName());
String schemaDesc = retrieval.getSchemaDesc();
if (StringUtils.isBlank(schemaDesc)) {
Expand Down
Loading