调度中心和执行器应用按官方文档配置正确并启动成功,在admin界面看不到我的执行器,只能看到xxl的demo执行器:
但在xxl_job_registry表里(执行器注册成功会插入到这张表里),有新增的记录,表明我的执行器是注册成功了的。
再去xxl_job_group表看,只有示例执行器的信息,没有我的执行器信息:
执行器启动后会自动向admin端注册自己,没问题, 因为xxl_job_registry表看到了注册记录。
但xxl_job_group表里,没有看到我们的自己的执行器。因此我们仍需在执行器管理界面去新增执行器,执行器的信息根据自己的项目信息填,选择“自动注册”:
新增成功后,就在xxl_job_group表里看到我们的执行器信息了:
xxl_job_group新增成功后,address_list字段不会立即有值,因为心跳注册存在短暂延时,稍等即可在执行器管理界面就可以看到我们的执行器:
为啥示例执行器无需手动在界面新增,而自定义执行器需手动新增才显示?
按官网操作说明,我们一般会执行里面的sql文件tables_xxl_job.sql。
sql里有一句标红sql。这条sql手动把示例执行器插入了xxl_job_group,因此示例执行器才不需要在界面手动新:
INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `order`, `address_type`, `address_list`)
VALUES (1, 'xxl-job-executor-sample', '示例执行器', 1, 0, NULL);
INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_cron`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`)
VALUES (1, 1, '0 0 0 * * ? *', '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', '');
差点急吐血,官方文档真垃圾,个人开源项目的确不能和spring这种有组织有架构的相提并论!