diff --git a/oh-my-scheduler-server/src/main/resources/static/js/app.65e5a27b.js b/oh-my-scheduler-server/src/main/resources/static/js/app.65e5a27b.js new file mode 100644 index 00000000..51fabaa7 --- /dev/null +++ b/oh-my-scheduler-server/src/main/resources/static/js/app.65e5a27b.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var r,a,i=t[0],c=t[1],s=t[2],l=0,f=[];l\n
\n
\n

OhMyScheduler

\n
\n\n
\n
\n
\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=90a84a42&scoped=true&\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navbar.vue?vue&type=style&index=0&id=90a84a42&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"90a84a42\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=c8951c4e&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport Element from 'element-ui'\nimport '../element-variables.scss'\n\nVue.use(Element)\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"console\"}},[_c('navbar'),_c('sidebar')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Console.vue?vue&type=template&id=a40f99c2&scoped=true&\"\nimport script from \"./Console.vue?vue&type=script&lang=js&\"\nexport * from \"./Console.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Console.vue?vue&type=style&index=0&id=a40f99c2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a40f99c2\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Console from \"./components/Console\";\n\nVue.use(VueRouter);\n\nconst router = new VueRouter({\n routes: [\n { path: \"/\", redirect: '/welcome' },\n { path: \"/welcome\", component: () => import('./components/Welcome') },\n {\n path: \"/oms\", component: Console, redirect: \"/oms/home\", children: [\n // 二级路由\n { path: \"/oms/home\", meta: { title: '主页' }, component: () => import('./components/views/Home') },\n { path: \"/oms/job\", meta: { title: '任务管理' }, component: () => import('./components/views/JobManager') },\n { path: \"/oms/instance\", meta: { title: '实例管理' }, component: () => import('./components/views/InstanceManager') },\n ]\n },\n // 调试用\n { path: \"/sidebar\", component: () => import('./components/bar/Sidebar') },\n { path: \"/navbar\", component: () => import('./components/bar/Navbar') },\n ]\n});\n\n// 默认导出,供 main.js 引入,作为项目的路由器\nexport default router;\n","import Vue from \"vue\"\nimport Vuex from \"vuex\"\n\nVue.use(Vuex);\n\nconst store = new Vuex.Store({\n state: {\n // 包含两个属性:id和appName\n appInfo: {}\n },\n // 推荐使用 mutations 改变 store中的值,调用方法:this.$store.commit('initAppInfo', xxx)\n mutations: {\n initAppInfo(state, appInfo) {\n state.appInfo = appInfo;\n }\n }\n});\n\nexport default store;\n","let timestamp2Str = ts => {\n if (ts < 10000) {\n return \"N/A\";\n }\n try {\n let date = new Date(ts);\n let Y = date.getFullYear() + '-';\n let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';\n let D = date.getDate() + ' ';\n let h = date.getHours() + ':';\n let m = date.getMinutes() + ':';\n let s = date.getSeconds();\n return Y+M+D+h+m+s;\n }catch (e) {\n return \"N/A\";\n }\n};\n\nexport default {\n timestamp2Str\n}\n","import Vue from 'vue'\nimport App from './App.vue'\nimport ElementUI from 'element-ui'\nimport { Message } from 'element-ui';\nimport './styles.scss'\nimport './plugins/element.js'\n\nimport axios from 'axios'\nimport router from \"./router\";\nimport store from \"./stroe\";\nimport common from \"./common\";\n// import VueCookies from 'vue-cookies';\n\nVue.use(ElementUI);\n// Vue.use(VueCookies);\n\nVue.prototype.common = common;\n/* ******* axios config ******* */\nVue.prototype.axios = axios;\naxios.defaults.baseURL = \"http://localhost:7700\";\naxios.defaults.timeout = 5000;\n\nVue.config.productionTip = false;\n\nnew Vue({\n router,\n store,\n render: h => h(App),\n}).$mount('#app');\n\n// 请求返回拦截,封装公共处理逻辑\naxios.interceptors.response.use((response) => {\n if (response.data.success === true) {\n return response.data.data;\n }\n Message.warning(\"错误信息:\" + response.data.message);\n return Promise.reject(response.data.msg);\n}, (error) => {\n Message.error(error.toString());\n return Promise.reject(error);\n});\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=90245f58&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=90245f58&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"sidebar\"}},[_c('el-container',{staticStyle:{\"width\":\"200px\"}},[_c('el-aside',{attrs:{\"width\":\"200px\"}},[_c('el-menu',{attrs:{\"router\":true,\"default-active\":_vm.default_active_index}},[_c('el-menu-item',{attrs:{\"index\":\"/oms/home\"}},[_c('template',{slot:\"title\"},[_c('i',{staticClass:\"el-icon-monitor\"}),_c('span',[_vm._v(\"系统首页\")])])],2),_c('el-menu-item',{attrs:{\"index\":\"/oms/job\"}},[_c('template',{slot:\"title\"},[_c('i',{staticClass:\"el-icon-data-analysis\"}),_c('span',[_vm._v(\"任务管理\")])])],2),_c('el-menu-item',{attrs:{\"index\":\"/oms/instance\"}},[_c('template',{slot:\"title\"},[_c('i',{staticClass:\"el-icon-s-data\"}),_c('span',[_vm._v(\"运行状态\")])])],2)],1)],1)],1),_c('div',{staticClass:\"wrap\"},[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=90245f58&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=90245f58&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"90245f58\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/oh-my-scheduler-server/src/main/resources/static/js/chunk-2d0c76e2.50e949d3.js b/oh-my-scheduler-server/src/main/resources/static/js/chunk-2d0c76e2.50e949d3.js new file mode 100644 index 00000000..ba33dfa8 --- /dev/null +++ b/oh-my-scheduler-server/src/main/resources/static/js/chunk-2d0c76e2.50e949d3.js @@ -0,0 +1,2 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0c76e2"],{"511a":function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"instance_manager"}},[n("el-row",[n("el-col",{attrs:{span:20}},[n("el-form",{staticClass:"el-form--inline",attrs:{inline:!0,model:t.instanceQueryContent}},[n("el-form-item",{attrs:{label:"实例ID"}},[n("el-input",{attrs:{placeholder:"实例ID"},model:{value:t.instanceQueryContent.instanceId,callback:function(e){t.$set(t.instanceQueryContent,"instanceId",e)},expression:"instanceQueryContent.instanceId"}})],1),n("el-form-item",{attrs:{label:"任务ID"}},[n("el-input",{attrs:{placeholder:"任务ID"},model:{value:t.instanceQueryContent.jobId,callback:function(e){t.$set(t.instanceQueryContent,"jobId",e)},expression:"instanceQueryContent.jobId"}})],1),n("el-form-item",[n("el-button",{attrs:{type:"primary"},on:{click:t.listInstanceInfos}},[t._v("查询")]),n("el-button",{attrs:{type:"cancel"},on:{click:t.onClickRest}},[t._v("重置")])],1)],1)],1),n("el-col",{attrs:{span:4}},[n("el-button",{attrs:{type:"primary"},on:{click:t.listInstanceInfos}},[t._v("刷新")])],1)],1),n("el-row",[n("el-table",{staticStyle:{width:"100%"},attrs:{data:t.instancePageResult.data,"row-class-name":t.instanceTableRowClassName}},[n("el-table-column",{attrs:{prop:"jobId",label:"任务ID"}}),n("el-table-column",{attrs:{prop:"jobName",label:"任务名称"}}),n("el-table-column",{attrs:{prop:"instanceId",label:"实例ID"}}),n("el-table-column",{attrs:{prop:"statusStr",label:"状态"}}),n("el-table-column",{attrs:{prop:"actualTriggerTime",label:"触发时间"}}),n("el-table-column",{attrs:{prop:"finishedTime",label:"结束时间"}}),n("el-table-column",{attrs:{label:"操作",width:"240px"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("el-button",{attrs:{size:"mini"},on:{click:function(n){return t.onClickShowDetail(e.row)}}},[t._v("详情")]),n("el-button",{attrs:{size:"mini"},on:{click:function(n){return t.onClickShowLog(e.row)}}},[t._v("日志")]),n("el-button",{attrs:{size:"mini"},on:{click:function(n){return t.onClickStop(e.row)}}},[t._v("停止")])]}}])})],1)],1),n("el-row",[n("el-col",{attrs:{span:24}},[n("el-pagination",{attrs:{"hide-on-single-page":!0,total:this.instancePageResult.totalItems,"page-size":this.instancePageResult.pageSize,layout:"prev, pager, next"},on:{"current-change":t.onClickChangeInstancePage}})],1)],1),n("el-dialog",{attrs:{title:"任务详情",visible:t.instanceDetailVisible},on:{"update:visible":function(e){t.instanceDetailVisible=e}}},[n("el-row",[n("el-col",{attrs:{span:8}},[t._v(" 状态: "+t._s(t.instanceDetail.status)+" ")]),n("el-col",{attrs:{span:16}},[t._v(" 运行次数:"+t._s(t.instanceDetail.runningTimes)+" ")])],1),n("el-row",[n("el-col",{attrs:{span:24}},[t._v(" TaskTracker地址: "+t._s(t.instanceDetail.taskTrackerAddress)+" ")])],1),n("el-row",[n("el-col",{attrs:{span:8}},[t._v(" 开始时间: "+t._s(this.common.timestamp2Str(t.instanceDetail.actualTriggerTime))+" ")]),n("el-col",{attrs:{span:8}},[t._v(" 结束时间: "+t._s(this.common.timestamp2Str(t.instanceDetail.finishedTime))+" ")])],1),n("el-row",[n("el-col",{attrs:{span:24}},[t._v(" 运行结果: "+t._s(t.instanceDetail.result)+" ")])],1),n("el-row",{attrs:{id:"taskDetail"}},[t._v(" 子任务数据: "+t._s(t.instanceDetail.taskDetail)+" ")]),n("el-row",[t._v(" 最近10条秒级任务历史记录 "),n("el-table",{staticStyle:{width:"100%"},attrs:{data:t.instanceDetail.subInstanceDetails}},[n("el-table-column",{attrs:{prop:"subInstanceId",label:"子实例ID",width:"100"}}),n("el-table-column",{attrs:{prop:"startTime",label:"开始时间",width:"160"}}),n("el-table-column",{attrs:{prop:"finishedTime",label:"结束时间",width:"160"}}),n("el-table-column",{attrs:{prop:"status",label:"运行状态",width:"100"}}),n("el-table-column",{attrs:{prop:"result",label:"运行结果"}})],1)],1)],1),n("el-dialog",{attrs:{title:"日志",visible:t.instanceLogVisible,width:"80%"},on:{"update:visible":function(e){t.instanceLogVisible=e}}},[n("el-row",[n("el-col",{attrs:{span:4,offset:20}},[n("el-button",{attrs:{size:"mini"},on:{click:function(e){return t.onclickDownloadLog()}}},[t._v("下载")])],1)],1),n("el-row",[n("el-col",{attrs:{span:24}},[n("div",{staticStyle:{"white-space":"pre-line"}},[t._v(" "+t._s(this.paginableInstanceLog.data)+" ")])])],1),n("el-row",[n("el-col",{attrs:{span:24}},[n("el-pagination",{attrs:{"hide-on-single-page":!0,"page-count":t.paginableInstanceLog.totalPages,layout:"prev, pager, next"},on:{"current-change":t.onClickChangeLogPage}})],1)],1)],1)],1)},i=[],s={name:"InstanceManager",data:function(){return{instanceQueryContent:{appId:this.$store.state.appInfo.id,index:0,pageSize:10,instanceId:void 0,jobId:void 0},instancePageResult:{pageSize:10,totalItems:0,data:[]},instanceDetail:{},instanceDetailVisible:!1,logQueryContent:{instanceId:void 0,index:0},instanceLogVisible:!1,paginableInstanceLog:{index:0,totalPages:0,data:""}}},methods:{listInstanceInfos:function(){var t=this;t.axios.post("/instance/list",t.instanceQueryContent).then((function(e){t.instancePageResult=e}))},onClickRest:function(){this.instanceQueryContent.jobId=void 0,this.instanceQueryContent.instanceId=void 0,this.listInstanceInfos()},onClickShowDetail:function(t){var e=this,n="/instance/status?instanceId="+t.instanceId;this.axios.get(n).then((function(t){e.instanceDetail=t,e.instanceDetailVisible=!0}))},onClickStop:function(t){var e=this,n="/instance/stop?instanceId="+t.instanceId;this.axios.get(n).then((function(){e.$message.success("停止成功"),e.listInstanceInfos()}))},onClickChangeInstancePage:function(t){this.instanceQueryContent.index=t-1,this.listInstanceInfos()},instanceTableRowClassName:function(t){var e=t.row;switch(e.status){case 4:return"error-row";case 5:return"success-row";case 10:return"warning-row"}},queryLog:function(){var t=this,e="/instance/log?instanceId="+this.logQueryContent.instanceId+"&index="+this.logQueryContent.index;this.axios.get(e).then((function(e){t.paginableInstanceLog=e,t.instanceLogVisible=!0}))},onClickShowLog:function(t){this.logQueryContent.instanceId=t.instanceId,this.queryLog()},onClickChangeLogPage:function(t){this.logQueryContent.index=t-1,this.queryLog()},onclickDownloadLog:function(){var t="/instance/downloadLogUrl?instanceId="+this.logQueryContent.instanceId;this.axios.get(t).then((function(t){return window.open(t)}))}},mounted:function(){this.listInstanceInfos()}},l=s,o=n("2877"),c=Object(o["a"])(l,a,i,!1,null,"3dfa7f3b",null);e["default"]=c.exports}}]); +//# sourceMappingURL=chunk-2d0c76e2.50e949d3.js.map \ No newline at end of file diff --git a/oh-my-scheduler-server/src/main/resources/static/js/chunk-2d0c76e2.50e949d3.js.map b/oh-my-scheduler-server/src/main/resources/static/js/chunk-2d0c76e2.50e949d3.js.map new file mode 100644 index 00000000..6fbb8c56 --- /dev/null +++ b/oh-my-scheduler-server/src/main/resources/static/js/chunk-2d0c76e2.50e949d3.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/components/views/InstanceManager.vue?a4f5","webpack:///src/components/views/InstanceManager.vue","webpack:///./src/components/views/InstanceManager.vue?4ce7","webpack:///./src/components/views/InstanceManager.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","staticClass","instanceQueryContent","model","value","callback","$$v","$set","expression","on","listInstanceInfos","_v","onClickRest","staticStyle","instancePageResult","data","instanceTableRowClassName","scopedSlots","_u","key","fn","scope","$event","onClickShowDetail","row","onClickShowLog","onClickStop","totalItems","pageSize","onClickChangeInstancePage","instanceDetailVisible","_s","instanceDetail","status","runningTimes","taskTrackerAddress","common","timestamp2Str","actualTriggerTime","finishedTime","result","taskDetail","subInstanceDetails","instanceLogVisible","onclickDownloadLog","paginableInstanceLog","totalPages","onClickChangeLogPage","staticRenderFns","component"],"mappings":"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","file":"js/chunk-2d0c76e2.50e949d3.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"instance_manager\"}},[_c('el-row',[_c('el-col',{attrs:{\"span\":20}},[_c('el-form',{staticClass:\"el-form--inline\",attrs:{\"inline\":true,\"model\":_vm.instanceQueryContent}},[_c('el-form-item',{attrs:{\"label\":\"实例ID\"}},[_c('el-input',{attrs:{\"placeholder\":\"实例ID\"},model:{value:(_vm.instanceQueryContent.instanceId),callback:function ($$v) {_vm.$set(_vm.instanceQueryContent, \"instanceId\", $$v)},expression:\"instanceQueryContent.instanceId\"}})],1),_c('el-form-item',{attrs:{\"label\":\"任务ID\"}},[_c('el-input',{attrs:{\"placeholder\":\"任务ID\"},model:{value:(_vm.instanceQueryContent.jobId),callback:function ($$v) {_vm.$set(_vm.instanceQueryContent, \"jobId\", $$v)},expression:\"instanceQueryContent.jobId\"}})],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.listInstanceInfos}},[_vm._v(\"查询\")]),_c('el-button',{attrs:{\"type\":\"cancel\"},on:{\"click\":_vm.onClickRest}},[_vm._v(\"重置\")])],1)],1)],1),_c('el-col',{attrs:{\"span\":4}},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.listInstanceInfos}},[_vm._v(\"刷新\")])],1)],1),_c('el-row',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.instancePageResult.data,\"row-class-name\":_vm.instanceTableRowClassName}},[_c('el-table-column',{attrs:{\"prop\":\"jobId\",\"label\":\"任务ID\"}}),_c('el-table-column',{attrs:{\"prop\":\"jobName\",\"label\":\"任务名称\"}}),_c('el-table-column',{attrs:{\"prop\":\"instanceId\",\"label\":\"实例ID\"}}),_c('el-table-column',{attrs:{\"prop\":\"statusStr\",\"label\":\"状态\"}}),_c('el-table-column',{attrs:{\"prop\":\"actualTriggerTime\",\"label\":\"触发时间\"}}),_c('el-table-column',{attrs:{\"prop\":\"finishedTime\",\"label\":\"结束时间\"}}),_c('el-table-column',{attrs:{\"label\":\"操作\",\"width\":\"240px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.onClickShowDetail(scope.row)}}},[_vm._v(\"详情\")]),_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.onClickShowLog(scope.row)}}},[_vm._v(\"日志\")]),_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.onClickStop(scope.row)}}},[_vm._v(\"停止\")])]}}])})],1)],1),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('el-pagination',{attrs:{\"hide-on-single-page\":true,\"total\":this.instancePageResult.totalItems,\"page-size\":this.instancePageResult.pageSize,\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.onClickChangeInstancePage}})],1)],1),_c('el-dialog',{attrs:{\"title\":\"任务详情\",\"visible\":_vm.instanceDetailVisible},on:{\"update:visible\":function($event){_vm.instanceDetailVisible=$event}}},[_c('el-row',[_c('el-col',{attrs:{\"span\":8}},[_vm._v(\" 状态: \"+_vm._s(_vm.instanceDetail.status)+\" \")]),_c('el-col',{attrs:{\"span\":16}},[_vm._v(\" 运行次数:\"+_vm._s(_vm.instanceDetail.runningTimes)+\" \")])],1),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_vm._v(\" TaskTracker地址: \"+_vm._s(_vm.instanceDetail.taskTrackerAddress)+\" \")])],1),_c('el-row',[_c('el-col',{attrs:{\"span\":8}},[_vm._v(\" 开始时间: \"+_vm._s(this.common.timestamp2Str(_vm.instanceDetail.actualTriggerTime))+\" \")]),_c('el-col',{attrs:{\"span\":8}},[_vm._v(\" 结束时间: \"+_vm._s(this.common.timestamp2Str(_vm.instanceDetail.finishedTime))+\" \")])],1),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_vm._v(\" 运行结果: \"+_vm._s(_vm.instanceDetail.result)+\" \")])],1),_c('el-row',{attrs:{\"id\":\"taskDetail\"}},[_vm._v(\" 子任务数据: \"+_vm._s(_vm.instanceDetail.taskDetail)+\" \")]),_c('el-row',[_vm._v(\" 最近10条秒级任务历史记录 \"),_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.instanceDetail.subInstanceDetails}},[_c('el-table-column',{attrs:{\"prop\":\"subInstanceId\",\"label\":\"子实例ID\",\"width\":\"100\"}}),_c('el-table-column',{attrs:{\"prop\":\"startTime\",\"label\":\"开始时间\",\"width\":\"160\"}}),_c('el-table-column',{attrs:{\"prop\":\"finishedTime\",\"label\":\"结束时间\",\"width\":\"160\"}}),_c('el-table-column',{attrs:{\"prop\":\"status\",\"label\":\"运行状态\",\"width\":\"100\"}}),_c('el-table-column',{attrs:{\"prop\":\"result\",\"label\":\"运行结果\"}})],1)],1)],1),_c('el-dialog',{attrs:{\"title\":\"日志\",\"visible\":_vm.instanceLogVisible,\"width\":\"80%\"},on:{\"update:visible\":function($event){_vm.instanceLogVisible=$event}}},[_c('el-row',[_c('el-col',{attrs:{\"span\":4,\"offset\":20}},[_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.onclickDownloadLog()}}},[_vm._v(\"下载\")])],1)],1),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticStyle:{\"white-space\":\"pre-line\"}},[_vm._v(\" \"+_vm._s(this.paginableInstanceLog.data)+\" \")])])],1),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('el-pagination',{attrs:{\"hide-on-single-page\":true,\"page-count\":_vm.paginableInstanceLog.totalPages,\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.onClickChangeLogPage}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceManager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceManager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InstanceManager.vue?vue&type=template&id=3dfa7f3b&scoped=true&\"\nimport script from \"./InstanceManager.vue?vue&type=script&lang=js&\"\nexport * from \"./InstanceManager.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3dfa7f3b\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/oh-my-scheduler-worker/src/main/java/com/github/kfcfans/oms/worker/background/OmsLogHandler.java b/oh-my-scheduler-worker/src/main/java/com/github/kfcfans/oms/worker/background/OmsLogHandler.java index c6e53b4c..e78fc3df 100644 --- a/oh-my-scheduler-worker/src/main/java/com/github/kfcfans/oms/worker/background/OmsLogHandler.java +++ b/oh-my-scheduler-worker/src/main/java/com/github/kfcfans/oms/worker/background/OmsLogHandler.java @@ -14,6 +14,7 @@ import org.springframework.util.StringUtils; import java.util.List; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** @@ -35,8 +36,7 @@ public class OmsLogHandler { // 处理线程,需要通过线程池启动 public final Runnable logSubmitter = new LogSubmitter(); // 上报锁,只需要一个线程上报即可 - private final ReentrantLock reportLock = new ReentrantLock(); - + private final Lock reportLock = new ReentrantLock(); // 每次上报携带的数据条数 private static final int BATCH_SIZE = 20; diff --git a/pom.xml b/pom.xml index 2bbfb44c..d92b4a43 100644 --- a/pom.xml +++ b/pom.xml @@ -49,11 +49,11 @@ 3.8.1 3.2.1 3.2.0 + 3.2.0 1.6 UTF-8 UTF-8 1.18.12 - @@ -67,12 +67,9 @@ + release - - true - - @@ -101,6 +98,20 @@ + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + + ${artifactId} + ${version} + + + + org.apache.maven.plugins @@ -149,6 +160,59 @@ + + + + dev + + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + ${java.version} + ${java.version} + + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + package + + jar-no-fork + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + + ${artifactId} + ${version} + + + + + + + \ No newline at end of file