private Boolean registerToScheduleEngine(ScheduleInfo scheduleInfo, String operator, boolean isUpdate) {
        // update(un-register and then register) or register
        boolean res = isUpdate ? getScheduleEngineClient(scheduleInfo.getScheduleEngine()).update(scheduleInfo)
                : getScheduleEngineClient(scheduleInfo.getScheduleEngine()).register(scheduleInfo);
        // update status to REGISTERED
        scheduleService.updateStatus(scheduleInfo.getInlongGroupId(), REGISTERED, operator);
        LOGGER.info("{} schedule info success for group {}",
                isUpdate ? "Update" : "Register", scheduleInfo.getInlongGroupId());
        return res;
    }
There are three places may trigger resister schedule info to schedule engine:
- 1. new group approved with schedule info
- 2. new schedule info for an exist approved inlong group added
- 3. group's schedule info updated
inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/schedule/ScheduleOperatorImpl.java