From 8eff07d7abc777821d79fae6a36d57f12a1c844f Mon Sep 17 00:00:00 2001
From: xuxueli <931591021@qq.com>
Date: Sat, 23 Aug 2025 22:51:07 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91GLUE?=
=?UTF-8?q?=E6=A8=A1=E5=BC=8F(Python)=20=E6=89=A9=E5=B1=95=EF=BC=8C?=
=?UTF-8?q?=E5=8F=AF=E9=80=89=20"GLUE(Python3)"=20=E6=88=96=20"GLUE(Python?=
=?UTF-8?q?2)"=20=E4=B8=A4=E7=A7=8D=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=88=86?=
=?UTF-8?q?=E5=88=AB=E6=94=AF=E6=8C=81=20python3/2=20=E5=A4=9A=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
doc/XXL-JOB官方文档.md | 1 +
.../main/resources/static/js/jobinfo.index.1.js | 2 ++
.../templates/jobcode/jobcode.index.ftl | 3 +++
.../templates/jobinfo/jobinfo.index.ftl | 17 ++++++++++++++++-
.../com/xxl/job/core/glue/GlueTypeEnum.java | 7 ++++---
.../src/main/resources/logback.xml | 12 +++++-------
.../src/main/resources/logback.xml | 12 +++++-------
7 files changed, 36 insertions(+), 18 deletions(-)
diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md
index 179ea6e5..bec16280 100644
--- a/doc/XXL-JOB官方文档.md
+++ b/doc/XXL-JOB官方文档.md
@@ -2554,6 +2554,7 @@ public void execute() {
- 8、【修复】合并PR-3506,修复小概率情况下任务重复调度问题;
- 9、【修复】合并PR-3747,修复异常情况下资源泄漏风险;
- 10、【优化】调度中心系统日志调整,支持启动时指定 -DLOG_HOME 参数自定义日志位置;同时优化日志格式提升易读性;
+- 11、【新增】GLUE模式(Python) 扩展,可选 "GLUE(Python3)" 或 "GLUE(Python2)" 两种模式,分别支持 python3/2 多版本;
- 3、【规划中】登录安全升级,密码加密处理算法从Md5改为Sha256;
```
diff --git a/xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js b/xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js
index b479e972..4683cb42 100644
--- a/xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js
+++ b/xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js
@@ -519,6 +519,8 @@ $(function() {
$("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_shell").val() );
} else if ('GLUE_PYTHON'==glueType){
$("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_python").val() );
+ } else if ('GLUE_PYTHON2'==glueType){
+ $("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_python2").val() );
} else if ('GLUE_PHP'==glueType){
$("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_php").val() );
} else if ('GLUE_NODEJS'==glueType){
diff --git a/xxl-job-admin/src/main/resources/templates/jobcode/jobcode.index.ftl b/xxl-job-admin/src/main/resources/templates/jobcode/jobcode.index.ftl
index c6d7c136..efd4f90b 100644
--- a/xxl-job-admin/src/main/resources/templates/jobcode/jobcode.index.ftl
+++ b/xxl-job-admin/src/main/resources/templates/jobcode/jobcode.index.ftl
@@ -133,6 +133,9 @@
<#elseif jobInfo.glueType == "GLUE_PYTHON" >
<#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/python/python.js" />
<#assign glueTypeIdeMode = "text/x-python" />
+ <#elseif jobInfo.glueType == "GLUE_PYTHON2" >
+ <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/python/python.js" />
+ <#assign glueTypeIdeMode = "text/x-python" />
<#elseif jobInfo.glueType == "GLUE_PHP" >
<#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/php/php.js" />
<#assign glueTypeIdeMode = "text/x-php" />
diff --git a/xxl-job-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl b/xxl-job-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl
index 3a5d7d8a..340d5d7d 100644
--- a/xxl-job-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl
+++ b/xxl-job-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl
@@ -281,6 +281,22 @@ exit 0
import time
import sys
+print("xxl-job: hello python")
+
+print("${I18n.jobinfo_script_location}:", sys.argv[0])
+print("${I18n.jobinfo_field_executorparam}:", sys.argv[1])
+print("${I18n.jobinfo_shard_index}:", sys.argv[2])
+print("${I18n.jobinfo_shard_total}:", sys.argv[3])
+
+print("Good bye!")
+exit(0)
+
+
-<#--这里有问题,新建一个运行模式为 php 的任务后,GLUE 中没有下边的 php 代码-->