generate_qw_task_sys_job_seed.py 6.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # -*- coding: utf-8 -*-
  2. """Generate fs_qw_task_sys_job_seed.sql from original fs-qw-task @Scheduled config."""
  3. from pathlib import Path
  4. # (job_name, invoke_target, cron_expression, remark)
  5. # cron from git HEAD fs-qw-task before migration to fs-task
  6. QW_JOBS = [
  7. ("\u4f01\u5fae-SOP\u89c4\u5219\u68c0\u67e5", "qwTask.qwCheckSopRuleTime()", "0 10 1 * * ?", "\u539f qwTask @Scheduled 0 10 1 * * ?"),
  8. ("\u4f01\u5fae-\u5ba2\u6237\u6253\u6807\u7b7e", "qwTask.addTag()", "0 0/20 * * * ?", "\u539f qwTask @Scheduled 0 0/20 * * * ?"),
  9. ("\u4f01\u5fae-\u8425\u671f\u751f\u6210SOP\u65e5\u5fd7", "qwTask.selectSopUserLogsListByTime()", "0 5 * * * ?", "\u539f qwTask @Scheduled 0 5 * * * ?"),
  10. ("\u4f01\u5fae-\u5fae\u4fe1SOP\u5904\u7406", "qwTask.wxSop()", "0 5 * * * ?", "\u539f qwTask @Scheduled 0 5 * * * ?"),
  11. ("\u4f01\u5fae-\u5b98\u65b9\u63a5\u53e3\u7fa4\u53d1(\u5355\u94fe)", "qwTask.SendQwApiSopLogTimer()", "0 20 1 * * ?", "\u539f qwTask @Scheduled 0 20 1 * * ?"),
  12. ("\u4f01\u5fae-\u5b98\u65b9\u63a5\u53e3\u7fa4\u53d1(\u65b0\u7248)", "qwTask.SendQwApiSopLogTimerNew()", "0 10 0,1 * * ?", "\u539f qwTask @Scheduled 0 10 0,1 * * ?"),
  13. ("\u4f01\u5fae-\u83b7\u53d6\u7fa4\u53d1\u7ed3\u679c", "qwTask.GetQwApiSopLogResultTimerNew()", "0 0 8 * * ?", "\u539f qwTask @Scheduled 0 0 8 * * ?"),
  14. ("\u4f01\u5fae-\u5ba2\u6237\u7fa4\u53d1\u5904\u7406", "qwTask.sendQwGroupMsgTask()", "0 0/10 * * * ?", "\u539f qwTask @Scheduled 0 0/10 * * * ?"),
  15. ("\u4f01\u5fae-\u53d1\u9001\u8f6c\u6362\u6d88\u606f", "qwTask.sendQwBySop()", "0 0 8 * * ?", "\u539f qwTask @Scheduled 0 0 8 * * ?"),
  16. ("\u4f01\u5fae-\u6807\u7b7e\u5907\u6ce8\u8865\u507f", "qwTask.qwExternalErrRetryTimer()", "0 0/3 * * * ?", "\u539f qwTask @Scheduled 0 0/3 * * * ?"),
  17. ("\u4f01\u5fae-\u8865\u53d1\u8fc7\u671f\u5b8c\u8bfe\u6d88\u606f", "qwTask.updateQwSopLogsByCancel()", "0 0 * * * ?", "\u539f qwTask @Scheduled 0 0 * * * ?"),
  18. ("\u4f01\u5fae-\u6279\u91cf\u5904\u7406\u8fc7\u671f\u6d88\u606f", "qwTask.batchProcessingExpiredMessages()", "0 0/8 * * * ?", "\u539f qwTask @Scheduled 0 0/8 * * * ?"),
  19. ("\u4f01\u5fae-\u6e05\u7406\u5386\u53f2SOP\u65e5\u5fd7", "qwTask.deleteQwSopLogsByDate()", "0 10 0 * * ?", "\u539f qwTask @Scheduled 0 10 0 * * ?"),
  20. ("\u4f01\u5fae-\u4fee\u590d\u8425\u671f\u5f02\u5e38\u6570\u636e", "qwTask.processRepairQwSopLogsTimer()", "0 30 0/3 * * ?", "\u539f qwTask @Scheduled 0 30 0/3 * * ?"),
  21. ("\u4f01\u5fae-E\u7ea7\u672a\u770b\u8bfe\u6062\u590d", "qwTask.processSopUserLogsInfoByIsDaysNotStudy()", "0 35 2 * * ?", "\u539f qwTask @Scheduled 0 35 2 * * ?"),
  22. ("\u4f01\u5fae-\u5ba2\u6237\u5206\u7ea7\u8bc4\u7ea7", "qwTask.processQwSopExternalContactRatingTimer()", "0 45 3 * * ?", "\u539f qwTask @Scheduled 0 45 3 * * ?"),
  23. ("\u4f01\u5fae-\u8d857\u5929\u672a\u770b\u8bfe\u6807E\u7ea7", "qwTask.processQwSopExternalContactRatingMoreSevenDaysTimer()", "0 30 3 * * ?", "\u539f qwTask @Scheduled 0 30 3 * * ?"),
  24. ("\u4f01\u5fae-\u66f4\u65b0\u524d\u4e00\u5929\u5f85\u53d1\u9001", "qwTask.updateQwSopLogsDayBefore()", "0 3 0 * * ?", "\u539f qwTask @Scheduled 0 3 0 * * ?"),
  25. ("\u4f01\u5fae-\u540c\u6b65\u5916\u90e8\u8054\u7cfb\u4ebaUnionId", "qwTask.updateQwExternalContactUnionid()", "0 1 0 */2 * ?", "\u539f qwTask @Scheduled 0 1 0 */2 * ?"),
  26. ("\u4f01\u5fae-\u81ea\u52a8\u62c9\u4eba\u8fdb\u7fa4", "qwTask.autoPullGroup()", "0 0 16 * * ?", "\u539f qwTask @Scheduled 0 0 16 * * ?"),
  27. ("\u770b\u8bfe-\u68c0\u67e5\u770b\u8bfe\u72b6\u6001", "courseWatchLogScheduler.checkWatchStatus()", "0 0/1 * * * ?", "\u539f fixedRate 60000\uff0c\u7528 cron \u8fd1\u4f3c\u6bcf\u5206\u949f"),
  28. ("\u770b\u8bfe-\u521b\u5efa\u5b8c\u8bfe\u6d88\u606f", "courseWatchLogScheduler.createCourseFinishMsg()", "0 0/5 * * * ?", "\u539f fixedRate 300000\uff0c\u7528 cron \u8fd1\u4f3c\u6bcf5\u5206\u949f"),
  29. ("\u770b\u8bfe-\u5220\u9664\u8fc7\u671f\u77ed\u94fe", "courseWatchLogScheduler.delCourseExpireLink()", "0 0 0 * * ?", "\u539f CourseWatchLogScheduler @Scheduled 0 0 0 * * ?"),
  30. ("\u4f01\u5fae-\u540c\u6b65\u4f01\u5fae\u5458\u5de5", "qwUserAsyncTask.syncQwUserAsync()", "0 0 0/3 * * ?", "\u539f QwUserAsyncTask @Scheduled 0 0 0/3 * * ?"),
  31. ("\u770b\u8bfe-\u4f1a\u5458\u770b\u8bfe\u7edf\u8ba1", "userCourseWatchCountTask.userCourseCountTask()", "0 */20 * * * ?", "\u539f UserCourseWatchCountTask @Scheduled 0 */20 * * * ?"),
  32. ("\u770b\u8bfe-\u5237\u65b0\u8bfe\u7a0b\u914d\u7f6e\u7f13\u5b58", "sopLogsTaskServiceImpl.refreshCourseConfig()", "0 0/1 * * * ?", "\u539f SopLogsTaskServiceImpl fixedDelay 60000"),
  33. ("\u4f01\u5fae-\u5237\u65b0\u8bc4\u7ea7\u914d\u7f6e", "qwExternalContactRatingServiceImpl.refreshRatingConfig()", "0 50 0/6 * * ?", "\u539f QwExternalContactRatingServiceImpl @Scheduled"),
  34. ("\u4f01\u5fae-\u5237\u65b0\u8d857\u5929\u8bc4\u7ea7\u914d\u7f6e", "qwExternalContactRatingMoreSevenDaysServiceImpl.refreshRatingConfig()", "0 50 0/6 * * ?", "\u539f QwExternalContactRatingMoreSevenDaysServiceImpl @Scheduled"),
  35. ]
  36. HEADER = (
  37. "-- fs-qw-task \u8fc1\u79fb\u81f3 fs-task \u540e\u7684 sys_job \u79cd\u5b50\u6570\u636e\n"
  38. "-- job_group=QW_TASK\uff1bstatus=0 \u542f\u7528\uff0cstatus=1 \u6682\u505c\uff08\u9ed8\u8ba4\u6682\u505c\uff09\n"
  39. "-- invoke_target \u987b\u4e0e fs-task \u6a21\u5757 Spring Bean \u65b9\u6cd5\u4e00\u81f4\n\n"
  40. )
  41. def render_job(job_name, invoke_target, cron, remark):
  42. return (
  43. "INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)\n"
  44. f"SELECT '{job_name}', 'QW_TASK', '{invoke_target}', '{cron}', '3', '1', '1', 'admin', NOW(), '{remark}'\n"
  45. f"WHERE NOT EXISTS (SELECT 1 FROM sys_job WHERE invoke_target = '{invoke_target}');\n"
  46. )
  47. def main():
  48. lines = [HEADER]
  49. for job in QW_JOBS:
  50. lines.append(render_job(*job))
  51. lines.append("\n")
  52. lines.append(
  53. "-- \u5907\u6ce8\uff1aselectChatSopUserLogsListByTime \u539f @Scheduled \u5df2\u6ce8\u91ca\uff0c\u672a\u5199\u5165\n"
  54. "-- \u5907\u6ce8\uff1acheckFsUserWatchStatus(fixedRate 30s) \u672a\u8fc1\u79fb\u81f3 fs-task\uff0c\u672a\u5199\u5165\n"
  55. )
  56. out = Path(__file__).resolve().parent / "fs_qw_task_sys_job_seed.sql"
  57. out.write_text("".join(lines), encoding="utf-8")
  58. print("OK", out, "jobs=", len(QW_JOBS))
  59. if __name__ == "__main__":
  60. main()