# magic-api-example-scheduled **Repository Path**: rousion/magic-api-example-scheduled ## Basic Information - **Project Name**: magic-api-example-scheduled - **Description**: magic-api-example demo 增加自定义定时任务的功能 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-02-26 - **Last Updated**: 2025-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## mysql 建表语句 ```sql CREATE TABLE `magic_api_file` ( `file_path` varchar(512) NOT NULL, `file_content` mediumtext, PRIMARY KEY (`file_path`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ``` ## 备份表建表语句 ```sql CREATE TABLE `magic_api_backup` ( `id` varchar(32) NOT NULL COMMENT '原对象ID', `create_date` bigint(13) NOT NULL COMMENT '备份时间', `tag` varchar(32) DEFAULT NULL COMMENT '标签', `type` varchar(32) DEFAULT NULL COMMENT '类型', `name` varchar(64) DEFAULT NULL COMMENT '原名称', `content` mediumtext COMMENT '备份内容', `create_by` varchar(64) DEFAULT NULL COMMENT '操作人', PRIMARY KEY (`id`,`create_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ``` ## 定时任务配置表语句 ```sql CREATE TABLE `magic_job` ( `id` bigint(0) NOT NULL AUTO_INCREMENT, `job_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '任务名称', `invoke_mode` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调用方式(invoke:调用magic_api函数,execute:调用magic_api接口直接返回结果,call:调用magic_api接口返回http包装后的请求结果)', `method_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '方法类型(get,post)', `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '接口路径', `params` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '传入参数,json类型的字符串', `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'cron执行表达式', `status` tinyint(0) NULL DEFAULT 1 COMMENT '状态', `del_flag` tinyint(0) NULL DEFAULT 0 COMMENT '删除标志', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; ``` ## 使用方法 ```java 项目启动之后通过magic-api写定时任务新增与删除接口(任务新增删除请引入CronTaskRegistrar这个bean) 任务新增:将任务写入数据库表magic_job 并调用 void addCronTask(Runnable task, String cronExpression) 任务删除:将任务从数据库删除并调用 void removeCronTask(Runnable task) ```