tenant_job_template.sql 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. -- tenant job template + per-tenant config (master DB ylrz_saas)
  2. -- A tenant picks template subset; sync writes to tenant sys_job
  3. CREATE TABLE IF NOT EXISTS sys_job_template (
  4. template_id BIGINT NOT NULL AUTO_INCREMENT COMMENT 'template id',
  5. template_code VARCHAR(64) NOT NULL COMMENT 'unique code',
  6. job_name VARCHAR(64) NOT NULL COMMENT 'display name',
  7. job_group VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT 'quartz group',
  8. invoke_target VARCHAR(500) NOT NULL COMMENT 'bean method',
  9. cron_expression VARCHAR(255) NOT NULL COMMENT 'default cron',
  10. misfire_policy CHAR(1) NOT NULL DEFAULT '3',
  11. concurrent CHAR(1) NOT NULL DEFAULT '1',
  12. scope VARCHAR(16) NOT NULL DEFAULT 'TENANT' COMMENT 'PLATFORM|TENANT',
  13. module_tag VARCHAR(32) DEFAULT NULL COMMENT 'module tag',
  14. default_status CHAR(1) NOT NULL DEFAULT '1' COMMENT 'default pause 0 run 1 pause',
  15. status CHAR(1) NOT NULL DEFAULT '0' COMMENT '0 enabled 1 disabled',
  16. remark VARCHAR(500) DEFAULT NULL,
  17. create_by VARCHAR(64) DEFAULT '',
  18. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  19. update_by VARCHAR(64) DEFAULT '',
  20. update_time DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  21. PRIMARY KEY (template_id),
  22. UNIQUE KEY uk_template_code (template_code)
  23. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='scheduled job template library';
  24. CREATE TABLE IF NOT EXISTS tenant_job_config (
  25. id BIGINT NOT NULL AUTO_INCREMENT,
  26. tenant_id BIGINT NOT NULL COMMENT 'tenant id',
  27. template_id BIGINT NOT NULL COMMENT 'sys_job_template.template_id',
  28. status CHAR(1) NOT NULL DEFAULT '1' COMMENT '0 enabled 1 paused',
  29. cron_expression VARCHAR(255) DEFAULT NULL COMMENT 'override cron',
  30. sync_status CHAR(1) NOT NULL DEFAULT '0' COMMENT '0 pending 1 ok 2 fail',
  31. sync_time DATETIME DEFAULT NULL,
  32. sync_message VARCHAR(500) DEFAULT NULL,
  33. create_by VARCHAR(64) DEFAULT '',
  34. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  35. update_by VARCHAR(64) DEFAULT '',
  36. update_time DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  37. PRIMARY KEY (id),
  38. UNIQUE KEY uk_tenant_template (tenant_id, template_id),
  39. KEY idx_tenant_id (tenant_id)
  40. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='per-tenant scheduled job selection';
  41. INSERT INTO sys_job_template (template_code, job_name, job_group, invoke_target, cron_expression, scope, module_tag, default_status, status, remark)
  42. SELECT 'qw.addTag', '企微-客户打标签', 'QW_TASK', 'qwTask.addTag()', '0 0/5 * * * ?', 'TENANT', 'qw', '1', '0', 'qw task'
  43. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_job_template WHERE template_code = 'qw.addTag');
  44. INSERT INTO sys_job_template (template_code, job_name, job_group, invoke_target, cron_expression, scope, module_tag, default_status, status, remark)
  45. SELECT 'course.periodRefresh', '营期课程状态刷新', 'DEFAULT', 'periodTask.refreshPeriodStatus()', '0 0/1 * * * ?', 'TENANT', 'course', '1', '0', 'course task'
  46. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_job_template WHERE template_code = 'course.periodRefresh');
  47. INSERT INTO sys_job_template (template_code, job_name, job_group, invoke_target, cron_expression, scope, module_tag, default_status, status, remark)
  48. SELECT 'platform.moduleUsage', '租户模块使用统计', 'DEFAULT', 'lobsterBridgeDataSyncService.executeModuleUsageStatistics()', '0 0 2 * * ?', 'PLATFORM', 'platform', '1', '0', 'platform only'
  49. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_job_template WHERE template_code = 'platform.moduleUsage');