From cfb05d9871a7606a9db0e9bea3782e4ae4fa03cd Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 22 Mar 2021 00:17:41 +0800 Subject: [PATCH 01/13] chore: fix github CI failed --- .github/workflows/docker-image.yml | 2 +- .github/workflows/maven.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 2d2603b5..695a0114 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Build the Docker image - run: mvn clean package -Pdev -DskipTests -U -e -pl powerjob-server,powerjob-worker-agent -am && /bin/cp -rf powerjob-server/target/*.jar powerjob-server/docker/powerjob-server.jar && /bin/cp -rf powerjob-worker-agent/target/*.jar powerjob-worker-agent/powerjob-agent.jar + run: mvn clean package -Pdev -DskipTests -U -e && /bin/cp -rf powerjob-server/powerjob-server-starter/target/*.jar powerjob-server/docker/powerjob-server.jar && /bin/cp -rf powerjob-worker-agent/target/*.jar powerjob-worker-agent/powerjob-agent.jar - uses: docker/build-push-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 87fcf745..c2f99971 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -23,7 +23,7 @@ jobs: - name: Build with Maven run: mvn -B clean package -Pdev -DskipTests --file pom.xml - name: upload build result - run: mkdir staging && cp powerjob-server/target/*.jar staging/powerjob-server.jar && cp powerjob-client/target/*.jar staging/powerjob-client.jar && cp powerjob-worker-agent/target/*.jar staging/powerjob-agent.jar + run: mkdir staging && cp powerjob-server/powerjob-server-starter/target/*.jar staging/powerjob-server.jar && cp powerjob-client/target/*.jar staging/powerjob-client.jar && cp powerjob-worker-agent/target/*.jar staging/powerjob-agent.jar - uses: actions/upload-artifact@v1 with: name: powerjob-server.jar From 0e5873ca051f118898dc339d34b2c863ce098465 Mon Sep 17 00:00:00 2001 From: luter Date: Tue, 23 Mar 2021 22:13:28 +0800 Subject: [PATCH 02/13] =?UTF-8?q?getWorkerInfoByAddress=20NPE=20=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E7=9A=84=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worker/WorkerClusterQueryService.java | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/worker/WorkerClusterQueryService.java b/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/worker/WorkerClusterQueryService.java index 5cb48004..da555c0b 100644 --- a/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/worker/WorkerClusterQueryService.java +++ b/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/worker/WorkerClusterQueryService.java @@ -1,14 +1,14 @@ package tech.powerjob.server.remote.worker; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import tech.powerjob.common.model.DeployedContainerInfo; import tech.powerjob.server.common.module.WorkerInfo; import tech.powerjob.server.extension.WorkerFilter; import tech.powerjob.server.persistence.remote.model.JobInfoDO; import tech.powerjob.server.remote.server.redirector.DesignateServer; -import com.google.common.collect.Lists; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; @@ -34,6 +34,7 @@ public class WorkerClusterQueryService { /** * get worker for job + * * @param jobInfo job * @return worker cluster info, sorted by metrics desc */ @@ -44,7 +45,7 @@ public class WorkerClusterQueryService { workers.removeIf(workerInfo -> filterWorker(workerInfo, jobInfo)); // 按健康度排序 - workers.sort((o1, o2) -> o2 .getSystemMetrics().calculateScore() - o1.getSystemMetrics().calculateScore()); + workers.sort((o1, o2) -> o2.getSystemMetrics().calculateScore() - o1.getSystemMetrics().calculateScore()); // 限定集群大小(0代表不限制) if (!workers.isEmpty() && jobInfo.getMaxWorkerCount() > 0 && workers.size() > jobInfo.getMaxWorkerCount()) { @@ -56,12 +57,13 @@ public class WorkerClusterQueryService { @DesignateServer public List getAllWorkers(Long appId) { List workers = Lists.newLinkedList(getWorkerInfosByAppId(appId).values()); - workers.sort((o1, o2) -> o2 .getSystemMetrics().calculateScore() - o1.getSystemMetrics().calculateScore()); + workers.sort((o1, o2) -> o2.getSystemMetrics().calculateScore() - o1.getSystemMetrics().calculateScore()); return workers; } /** * get all alive workers + * * @param appId appId * @return alive workers */ @@ -71,8 +73,22 @@ public class WorkerClusterQueryService { return workers; } + /** + * Gets worker info by address. + * + * @param appId the app id + * @param address the address + * @return the worker info by address + */ public Optional getWorkerInfoByAddress(Long appId, String address) { - return Optional.ofNullable(getWorkerInfosByAppId(appId).get(address)); + // this may cause NPE while address value is null . + //return Optional.ofNullable(getWorkerInfosByAppId(appId).get(address)); + final Map workerInfosByAppId = getWorkerInfosByAppId(appId); + //add null check for both workerInfos Map and address + if (null != workerInfosByAppId && null != address) { + return Optional.ofNullable(workerInfosByAppId.get(address)); + } + return Optional.empty(); } public Map getAppId2ClusterStatus() { @@ -81,7 +97,8 @@ public class WorkerClusterQueryService { /** * 获取某个应用容器的部署情况 - * @param appId 应用ID + * + * @param appId 应用ID * @param containerId 容器ID * @return 部署情况 */ @@ -104,8 +121,9 @@ public class WorkerClusterQueryService { /** * filter invalid worker for job + * * @param workerInfo worker info - * @param jobInfo job info + * @param jobInfo job info * @return filter this worker when return true */ private boolean filterWorker(WorkerInfo workerInfo, JobInfoDO jobInfo) { From c31f10b3c163a98316c76bedaaa65cbed2a9f65b Mon Sep 17 00:00:00 2001 From: lwc1 Date: Sat, 27 Mar 2021 14:32:12 +0800 Subject: [PATCH 03/13] fix server election --- .../server/remote/server/election/ServerElectionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/election/ServerElectionService.java b/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/election/ServerElectionService.java index ac68edc5..1370949e 100644 --- a/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/election/ServerElectionService.java +++ b/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/election/ServerElectionService.java @@ -93,7 +93,7 @@ public class ServerElectionService { // 可能上一台机器已经完成了Server选举,需要再次判断 AppInfoDO appInfo = appInfoRepository.findById(appId).orElseThrow(() -> new RuntimeException("impossible, unless we just lost our database.")); - String address = activeAddress(originServer, downServerCache, protocol); + String address = activeAddress(appInfo.getCurrentServer(), downServerCache, protocol); if (StringUtils.isNotEmpty(address)) { return address; } From 5f0865129e5933f141e1c00f4dd6174123e5ba98 Mon Sep 17 00:00:00 2001 From: Chang Kung Yao Date: Tue, 30 Mar 2021 08:27:15 +0800 Subject: [PATCH 04/13] Add Postgresql Support --- .../config/MultiDatasourceProperties.java | 68 +++++++++++++++++++ .../persistence/config/PowerJobPGDialect.java | 23 +++++++ .../persistence/config/RemoteJpaConfig.java | 18 ++++- .../resources/application-daily.properties | 2 + 4 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java create mode 100644 powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java new file mode 100644 index 00000000..0c07c574 --- /dev/null +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java @@ -0,0 +1,68 @@ +package tech.powerjob.server.persistence.config; + +import com.google.common.collect.Maps; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 多重数据源配置 + * + * @author tjq + * @since 2020/4/27 + */ +@Component +@ConfigurationProperties("spring.datasource") +public class MultiDatasourceProperties { + + + + private DataSourceProperties remote = new DataSourceProperties(); + + private DataSourceProperties local = new DataSourceProperties(); + + + public static class DataSourceProperties { + + private HibernateProperties hibernate = new HibernateProperties(); + + public void setHibernate( HibernateProperties hibernate ) { + this.hibernate = hibernate; + } + + public HibernateProperties getHibernate() { + return hibernate; + } + } + + + public static class HibernateProperties { + + private Map properties = Maps.newHashMap(); + + public void setProperties( Map properties ) { + this.properties = properties; + } + + public Map getProperties() { + return properties; + } + } + + public void setLocal( DataSourceProperties local ) { + this.local = local; + } + + public void setRemote( DataSourceProperties remote ) { + this.remote = remote; + } + + public DataSourceProperties getLocal() { + return local; + } + + public DataSourceProperties getRemote() { + return remote; + } +} diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java new file mode 100644 index 00000000..1020eed8 --- /dev/null +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java @@ -0,0 +1,23 @@ +package tech.powerjob.server.persistence.config; + +import org.hibernate.dialect.PostgreSQL10Dialect; +import org.hibernate.type.descriptor.sql.LongVarcharTypeDescriptor; +import org.hibernate.type.descriptor.sql.SqlTypeDescriptor; + +import java.sql.Types; + +/** + * @author Kung Yao + * 2021/3/24 下午 04:23 + * 1074_King + */ +public class PowerJobPGDialect extends PostgreSQL10Dialect { + + @Override + public SqlTypeDescriptor remapSqlTypeDescriptor( SqlTypeDescriptor sqlTypeDescriptor ) { + if ( Types.CLOB == sqlTypeDescriptor.getSqlType() ) { + return LongVarcharTypeDescriptor.INSTANCE; + } + return super.remapSqlTypeDescriptor( sqlTypeDescriptor ); + } +} diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java index bb1290fa..39521943 100644 --- a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java @@ -1,5 +1,8 @@ package tech.powerjob.server.persistence.config; +import com.google.common.collect.Maps; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties; import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings; import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; @@ -7,6 +10,7 @@ import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import org.springframework.core.env.Environment; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -39,6 +43,11 @@ public class RemoteJpaConfig { @Resource(name = "omsRemoteDatasource") private DataSource omsRemoteDatasource; + @Resource(name = "multiDatasourceProperties") + private MultiDatasourceProperties properties; + + + public static final String CORE_PACKAGES = "tech.powerjob.server.persistence.remote"; /** @@ -55,6 +64,10 @@ public class RemoteJpaConfig { jpaProperties.setOpenInView(false); jpaProperties.setShowSql(false); + + + + HibernateProperties hibernateProperties = new HibernateProperties(); hibernateProperties.setDdlAuto("update"); @@ -67,10 +80,11 @@ public class RemoteJpaConfig { @Primary @Bean(name = "remoteEntityManagerFactory") public LocalContainerEntityManagerFactoryBean initRemoteEntityManagerFactory(EntityManagerFactoryBuilder builder) { - + Map< String,Object > datasourceProperties = genDatasourceProperties(); + datasourceProperties.putAll( properties.getRemote().getHibernate().getProperties() ); return builder .dataSource(omsRemoteDatasource) - .properties(genDatasourceProperties()) + .properties( datasourceProperties ) .packages(CORE_PACKAGES) .persistenceUnit("remotePersistenceUnit") .build(); diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties b/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties index bb286003..7c2a39e0 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties +++ b/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties @@ -8,6 +8,8 @@ spring.datasource.core.username=root spring.datasource.core.password=No1Bug2Please3! spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5 +## The SQL dialect makes Hibernate generate better SQL for the chosen database +spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.PowerJobPGDialect ####### MongoDB properties(Non-core configuration properties) ####### ####### configure oms.mongodb.enable=false to disable mongodb ####### From a0f76f7ba9c46b3312ca4439895a2b163de0ef18 Mon Sep 17 00:00:00 2001 From: Echo009 Date: Sat, 3 Apr 2021 17:08:16 +0800 Subject: [PATCH 05/13] refactor: optimize code for pull request 249,fix issue #153 --- .../config/MultiDatasourceProperties.java | 16 +++++----- .../persistence/config/PowerJobPGDialect.java | 23 -------------- .../persistence/config/RemoteJpaConfig.java | 18 +++-------- .../config/dialect/PowerJobPGDialect.java | 30 +++++++++++++++++++ .../resources/application-daily.properties | 6 ++-- 5 files changed, 45 insertions(+), 48 deletions(-) delete mode 100644 powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java create mode 100644 powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java index 0c07c574..28970ea0 100644 --- a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/MultiDatasourceProperties.java @@ -9,15 +9,13 @@ import java.util.*; /** * 多重数据源配置 * - * @author tjq + * @author Kung Yao * @since 2020/4/27 */ @Component @ConfigurationProperties("spring.datasource") public class MultiDatasourceProperties { - - private DataSourceProperties remote = new DataSourceProperties(); private DataSourceProperties local = new DataSourceProperties(); @@ -25,9 +23,9 @@ public class MultiDatasourceProperties { public static class DataSourceProperties { - private HibernateProperties hibernate = new HibernateProperties(); + private HibernateProperties hibernate = new HibernateProperties(); - public void setHibernate( HibernateProperties hibernate ) { + public void setHibernate(HibernateProperties hibernate) { this.hibernate = hibernate; } @@ -39,9 +37,9 @@ public class MultiDatasourceProperties { public static class HibernateProperties { - private Map properties = Maps.newHashMap(); + private Map properties = Maps.newHashMap(); - public void setProperties( Map properties ) { + public void setProperties(Map properties) { this.properties = properties; } @@ -50,11 +48,11 @@ public class MultiDatasourceProperties { } } - public void setLocal( DataSourceProperties local ) { + public void setLocal(DataSourceProperties local) { this.local = local; } - public void setRemote( DataSourceProperties remote ) { + public void setRemote(DataSourceProperties remote) { this.remote = remote; } diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java deleted file mode 100644 index 1020eed8..00000000 --- a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/PowerJobPGDialect.java +++ /dev/null @@ -1,23 +0,0 @@ -package tech.powerjob.server.persistence.config; - -import org.hibernate.dialect.PostgreSQL10Dialect; -import org.hibernate.type.descriptor.sql.LongVarcharTypeDescriptor; -import org.hibernate.type.descriptor.sql.SqlTypeDescriptor; - -import java.sql.Types; - -/** - * @author Kung Yao - * 2021/3/24 下午 04:23 - * 1074_King - */ -public class PowerJobPGDialect extends PostgreSQL10Dialect { - - @Override - public SqlTypeDescriptor remapSqlTypeDescriptor( SqlTypeDescriptor sqlTypeDescriptor ) { - if ( Types.CLOB == sqlTypeDescriptor.getSqlType() ) { - return LongVarcharTypeDescriptor.INSTANCE; - } - return super.remapSqlTypeDescriptor( sqlTypeDescriptor ); - } -} diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java index 39521943..3bc52603 100644 --- a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/RemoteJpaConfig.java @@ -1,8 +1,5 @@ package tech.powerjob.server.persistence.config; -import com.google.common.collect.Maps; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties; import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings; import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; @@ -10,7 +7,6 @@ import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; -import org.springframework.core.env.Environment; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -46,12 +42,10 @@ public class RemoteJpaConfig { @Resource(name = "multiDatasourceProperties") private MultiDatasourceProperties properties; - - public static final String CORE_PACKAGES = "tech.powerjob.server.persistence.remote"; /** - * 生成配置文件,包括 JPA配置文件和Hibernate配置文件,相当于一下三个配置 + * 生成配置文件,包括 JPA配置文件和Hibernate配置文件,相当于以下三个配置 * spring.jpa.show-sql=false * spring.jpa.open-in-view=false * spring.jpa.hibernate.ddl-auto=update @@ -64,10 +58,6 @@ public class RemoteJpaConfig { jpaProperties.setOpenInView(false); jpaProperties.setShowSql(false); - - - - HibernateProperties hibernateProperties = new HibernateProperties(); hibernateProperties.setDdlAuto("update"); @@ -80,11 +70,11 @@ public class RemoteJpaConfig { @Primary @Bean(name = "remoteEntityManagerFactory") public LocalContainerEntityManagerFactoryBean initRemoteEntityManagerFactory(EntityManagerFactoryBuilder builder) { - Map< String,Object > datasourceProperties = genDatasourceProperties(); - datasourceProperties.putAll( properties.getRemote().getHibernate().getProperties() ); + Map datasourceProperties = genDatasourceProperties(); + datasourceProperties.putAll(properties.getRemote().getHibernate().getProperties()); return builder .dataSource(omsRemoteDatasource) - .properties( datasourceProperties ) + .properties(datasourceProperties) .packages(CORE_PACKAGES) .persistenceUnit("remotePersistenceUnit") .build(); diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java new file mode 100644 index 00000000..6a197abc --- /dev/null +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java @@ -0,0 +1,30 @@ +package tech.powerjob.server.persistence.config.dialect; + +import org.hibernate.dialect.PostgreSQL10Dialect; +import org.hibernate.type.descriptor.sql.LongVarcharTypeDescriptor; +import org.hibernate.type.descriptor.sql.SqlTypeDescriptor; + +import java.sql.Types; + +/** + * @author Kung Yao + * @author Echo009 + * 2021/3/24 下午 04:23 + * 1074_King + */ +public class PowerJobPGDialect extends PostgreSQL10Dialect { + + /** + * 使用 {@link Types#LONGVARCHAR} 覆盖 {@link Types#CLOB} 类型 + * + * 注意,如果在 PG 库创建表时使用的列类型为 oid ,那么这样会导致没法正确读取数据 + * 在 PowerJob 中能这样用是因为 PowerJob 的所有实体类中被 @Lob 注解标记的列对应数据库中的字段类型都是 text + * 另外还需要注意数据库版本,如果是 10.x 以前的,需自行提供一个合适的 Dialect 类(选择合适的版本继承) + * + * 更多内容请关注该 issues:https://github.com/PowerJob/PowerJob/issues/153 + */ + @Override + public SqlTypeDescriptor getSqlTypeDescriptorOverride(int sqlCode) { + return Types.CLOB == sqlCode ? LongVarcharTypeDescriptor.INSTANCE : null; + } +} diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties b/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties index 7c2a39e0..ced95d49 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties +++ b/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties @@ -8,8 +8,10 @@ spring.datasource.core.username=root spring.datasource.core.password=No1Bug2Please3! spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5 -## The SQL dialect makes Hibernate generate better SQL for the chosen database -spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.PowerJobPGDialect + +####### Fix issue 153 for PostgreSQL users, see https://github.com/PowerJob/PowerJob/issues/153#issuecomment-812771783 for more information ####### +####### Notice, the configuration below only supports PostgreSQL 10.x and later ####### +# spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect ####### MongoDB properties(Non-core configuration properties) ####### ####### configure oms.mongodb.enable=false to disable mongodb ####### From 4d236153de9581df59d40537c7ec83cfb52fc5ce Mon Sep 17 00:00:00 2001 From: Echo009 Date: Sat, 3 Apr 2021 17:12:57 +0800 Subject: [PATCH 06/13] chore: add PostgreSQL dialect config hint to pre and product env config file --- .../src/main/resources/application-pre.properties | 4 ++++ .../src/main/resources/application-product.properties | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties b/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties index c3ed2054..f483a25f 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties +++ b/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties @@ -9,6 +9,10 @@ spring.datasource.core.password=No1Bug2Please3! spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5 +####### Fix issue 153 for PostgreSQL users, see https://github.com/PowerJob/PowerJob/issues/153#issuecomment-812771783 for more information ####### +####### Notice, the configuration below only supports PostgreSQL 10.x and later ####### +# spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect + ####### MongoDB properties(Non-core configuration properties) ####### ####### configure oms.mongodb.enable=false to disable mongodb ####### oms.mongodb.enable=true diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties b/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties index 493a6abb..419f3bb7 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties +++ b/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties @@ -9,6 +9,10 @@ spring.datasource.core.password=No1Bug2Please3! spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5 +####### Fix issue 153 for PostgreSQL users, see https://github.com/PowerJob/PowerJob/issues/153#issuecomment-812771783 for more information ####### +####### Notice, the configuration below only supports PostgreSQL 10.x and later ####### +# spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect + ####### MongoDB properties(Non-core configuration properties) ####### ####### configure oms.mongodb.enable=false to disable mongodb ####### oms.mongodb.enable=true From 4e9c1f98b7dbffd288fa0cbe78247812ff3d4ebe Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 5 Apr 2021 12:57:50 +0800 Subject: [PATCH 07/13] refactor: optimize dialect properties --- .../server/persistence/config/dialect/PowerJobPGDialect.java | 3 +++ .../src/main/resources/application-daily.properties | 4 ---- .../src/main/resources/application-pre.properties | 4 ---- .../src/main/resources/application-product.properties | 4 ---- 4 files changed, 3 insertions(+), 12 deletions(-) diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java index 6a197abc..083abe65 100644 --- a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/config/dialect/PowerJobPGDialect.java @@ -7,6 +7,9 @@ import org.hibernate.type.descriptor.sql.SqlTypeDescriptor; import java.sql.Types; /** + * PostgreSQL 数据库支持,需要在 application.properties 中添加以下配置项进行激活 + * spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect + * * @author Kung Yao * @author Echo009 * 2021/3/24 下午 04:23 diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties b/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties index ced95d49..bb286003 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties +++ b/powerjob-server/powerjob-server-starter/src/main/resources/application-daily.properties @@ -9,10 +9,6 @@ spring.datasource.core.password=No1Bug2Please3! spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5 -####### Fix issue 153 for PostgreSQL users, see https://github.com/PowerJob/PowerJob/issues/153#issuecomment-812771783 for more information ####### -####### Notice, the configuration below only supports PostgreSQL 10.x and later ####### -# spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect - ####### MongoDB properties(Non-core configuration properties) ####### ####### configure oms.mongodb.enable=false to disable mongodb ####### oms.mongodb.enable=true diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties b/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties index f483a25f..c3ed2054 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties +++ b/powerjob-server/powerjob-server-starter/src/main/resources/application-pre.properties @@ -9,10 +9,6 @@ spring.datasource.core.password=No1Bug2Please3! spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5 -####### Fix issue 153 for PostgreSQL users, see https://github.com/PowerJob/PowerJob/issues/153#issuecomment-812771783 for more information ####### -####### Notice, the configuration below only supports PostgreSQL 10.x and later ####### -# spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect - ####### MongoDB properties(Non-core configuration properties) ####### ####### configure oms.mongodb.enable=false to disable mongodb ####### oms.mongodb.enable=true diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties b/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties index 419f3bb7..493a6abb 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties +++ b/powerjob-server/powerjob-server-starter/src/main/resources/application-product.properties @@ -9,10 +9,6 @@ spring.datasource.core.password=No1Bug2Please3! spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5 -####### Fix issue 153 for PostgreSQL users, see https://github.com/PowerJob/PowerJob/issues/153#issuecomment-812771783 for more information ####### -####### Notice, the configuration below only supports PostgreSQL 10.x and later ####### -# spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect - ####### MongoDB properties(Non-core configuration properties) ####### ####### configure oms.mongodb.enable=false to disable mongodb ####### oms.mongodb.enable=true From 7527b31ece1cdce7d4dd55d06834b6ff87def445 Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 5 Apr 2021 13:24:39 +0800 Subject: [PATCH 08/13] fix: update powerjob-server's sql to fix the bug of can't save workflow #247 --- others/powerjob-mysql.sql | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/others/powerjob-mysql.sql b/others/powerjob-mysql.sql index 724c1b68..f10b49d1 100644 --- a/others/powerjob-mysql.sql +++ b/others/powerjob-mysql.sql @@ -11,7 +11,7 @@ Target Server Version : 80021 File Encoding : 65001 - Date: 14/03/2021 19:54:37 + Date: 05/04/2021 13:15:19 */ SET NAMES utf8mb4; @@ -68,7 +68,7 @@ CREATE TABLE `instance_info` ( `job_id` bigint DEFAULT NULL, `job_params` longtext, `last_report_time` bigint DEFAULT NULL, - `result` longtext, + `result` text, `running_times` bigint DEFAULT NULL, `status` int DEFAULT NULL, `task_tracker_address` varchar(255) DEFAULT NULL, @@ -98,7 +98,7 @@ CREATE TABLE `job_info` ( `instance_time_limit` bigint DEFAULT NULL, `job_description` varchar(255) DEFAULT NULL, `job_name` varchar(255) DEFAULT NULL, - `job_params` longtext, + `job_params` text, `lifecycle` varchar(255) DEFAULT NULL, `max_instance_num` int DEFAULT NULL, `max_worker_count` int DEFAULT NULL, @@ -176,7 +176,7 @@ CREATE TABLE `workflow_info` ( `max_wf_instance_num` int DEFAULT NULL, `next_trigger_time` bigint DEFAULT NULL, `notify_user_ids` varchar(255) DEFAULT NULL, - `pedag` longtext, + `pedag` text, `status` int DEFAULT NULL, `time_expression` varchar(255) DEFAULT NULL, `time_expression_type` int DEFAULT NULL, @@ -194,15 +194,15 @@ CREATE TABLE `workflow_instance_info` ( `id` bigint NOT NULL AUTO_INCREMENT, `actual_trigger_time` bigint DEFAULT NULL, `app_id` bigint DEFAULT NULL, - `dag` longtext, + `dag` text, `expected_trigger_time` bigint DEFAULT NULL, `finished_time` bigint DEFAULT NULL, `gmt_create` datetime(6) DEFAULT NULL, `gmt_modified` datetime(6) DEFAULT NULL, - `result` longtext, + `result` text, `status` int DEFAULT NULL, - `wf_context` longtext, - `wf_init_params` longtext, + `wf_context` text, + `wf_init_params` text, `wf_instance_id` bigint DEFAULT NULL, `workflow_id` bigint DEFAULT NULL, PRIMARY KEY (`id`) @@ -216,15 +216,15 @@ CREATE TABLE `workflow_node_info` ( `id` bigint NOT NULL AUTO_INCREMENT, `app_id` bigint NOT NULL, `enable` bit(1) NOT NULL, - `extra` longtext, + `extra` text, `gmt_create` datetime(6) NOT NULL, `gmt_modified` datetime(6) NOT NULL, `job_id` bigint DEFAULT NULL, `node_name` varchar(255) DEFAULT NULL, - `node_params` longtext, + `node_params` text, `skip_when_failed` bit(1) NOT NULL, `type` int DEFAULT NULL, - `workflow_id` bigint NOT NULL, + `workflow_id` bigint DEFAULT NULL, PRIMARY KEY (`id`), KEY `IDX36t7rhj4mkg2a5pb4ttorscta` (`app_id`), KEY `IDXacr0i6my8jr002ou8i1gmygju` (`workflow_id`) From c8a1f536c3400b9b84f1b51439f94dc2c473880f Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 5 Apr 2021 13:54:16 +0800 Subject: [PATCH 09/13] feat: output more server info --- .../server/migrate/MigrateController.java | 5 ++-- .../remote/server/ServerInfoService.java | 24 ++++++++++++++++++ .../powerjob/server/config/SwaggerConfig.java | 25 ++++++------------- .../web/controller/SystemInfoController.java | 6 +++++ .../server/web/response/SystemOverviewVO.java | 13 ++++++++++ 5 files changed, 54 insertions(+), 19 deletions(-) diff --git a/powerjob-server/powerjob-server-migrate/src/main/java/tech/powerjob/server/migrate/MigrateController.java b/powerjob-server/powerjob-server-migrate/src/main/java/tech/powerjob/server/migrate/MigrateController.java index 8871431c..e009519e 100644 --- a/powerjob-server/powerjob-server-migrate/src/main/java/tech/powerjob/server/migrate/MigrateController.java +++ b/powerjob-server/powerjob-server-migrate/src/main/java/tech/powerjob/server/migrate/MigrateController.java @@ -1,6 +1,7 @@ package tech.powerjob.server.migrate; import com.alibaba.fastjson.JSONObject; +import org.springframework.web.bind.annotation.GetMapping; import tech.powerjob.common.response.ResultDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; @@ -29,7 +30,7 @@ public class MigrateController { /** * 修复对应 APP 下的任务信息 */ - @RequestMapping("/v4/job") + @GetMapping("/v4/job") public ResultDTO fixJobInfoFromV3ToV4(@RequestParam Long appId) { return ResultDTO.success(v3ToV4MigrateService.fixDeprecatedProcessType(appId)); } @@ -37,7 +38,7 @@ public class MigrateController { /** * 修复对应 APP 下的工作流信息 */ - @RequestMapping("/v4/workflow") + @GetMapping("/v4/workflow") public ResultDTO fixWorkflowInfoFromV3ToV4(@RequestParam Long appId){ return ResultDTO.success(v3ToV4MigrateService.fixWorkflowInfoFromV3ToV4(appId)); } diff --git a/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/ServerInfoService.java b/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/ServerInfoService.java index a3615b85..6b83a007 100644 --- a/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/ServerInfoService.java +++ b/powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/ServerInfoService.java @@ -1,5 +1,7 @@ package tech.powerjob.server.remote.server; +import org.apache.commons.lang3.StringUtils; +import org.springframework.boot.info.BuildProperties; import tech.powerjob.common.exception.PowerJobException; import tech.powerjob.common.utils.CommonUtils; import tech.powerjob.common.utils.NetUtils; @@ -33,6 +35,8 @@ public class ServerInfoService { private final ServerInfoRepository serverInfoRepository; + private String version = "UNKNOWN"; + private static final long MAX_SERVER_CLUSTER_SIZE = 10000; private static final String SERVER_INIT_LOCK = "server_init_lock"; @@ -42,6 +46,15 @@ public class ServerInfoService { return serverId; } + public String getServerIp() { + return ip; + } + + public String getServerVersion() { + return version; + } + + @Autowired public ServerInfoService(LockService lockService, ServerInfoRepository serverInfoRepository) { @@ -121,4 +134,15 @@ public class ServerInfoService { } throw new PowerJobException("impossible"); } + + @Autowired(required = false) + public void setBuildProperties(BuildProperties buildProperties) { + if (buildProperties == null) { + return; + } + String pomVersion = buildProperties.getVersion(); + if (StringUtils.isNotBlank(pomVersion)) { + version = pomVersion; + } + } } diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java index 890718fc..77bb4310 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java @@ -1,10 +1,6 @@ package tech.powerjob.server.config; -import tech.powerjob.server.common.PowerJobServerConfigKey; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.info.BuildProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; @@ -12,6 +8,10 @@ import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; +import tech.powerjob.server.common.PowerJobServerConfigKey; +import tech.powerjob.server.remote.server.ServerInfoService; + +import javax.annotation.Resource; import static springfox.documentation.builders.PathSelectors.any; @@ -27,28 +27,19 @@ import static springfox.documentation.builders.PathSelectors.any; @ConditionalOnProperty(name = PowerJobServerConfigKey.SWAGGER_UI_ENABLE, havingValue = "true") public class SwaggerConfig { - private final BuildProperties buildProperties; - - public SwaggerConfig(@Autowired(required = false) final BuildProperties buildProperties) { - this.buildProperties = buildProperties; - } + @Resource + private ServerInfoService serverInfoService; @Bean public Docket createRestApi() { - String version = "unknown"; - if (buildProperties != null) { - String pomVersion = buildProperties.getVersion(); - if (StringUtils.isNotBlank(pomVersion)) { - version = pomVersion; - } - } + // apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中 ApiInfo apiInfo = new ApiInfoBuilder() .title("PowerJob") .description("Distributed scheduling and computing framework.") .license("Apache Licence 2") .termsOfServiceUrl("https://github.com/PowerJob/PowerJob") - .version(version) + .version(serverInfoService.getServerVersion()) .build(); return new Docket(DocumentationType.SWAGGER_2) diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java index c0167896..6d747129 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java @@ -6,6 +6,7 @@ import tech.powerjob.common.response.ResultDTO; import tech.powerjob.server.common.constants.SwitchableStatus; import tech.powerjob.server.persistence.remote.repository.InstanceInfoRepository; import tech.powerjob.server.persistence.remote.repository.JobInfoRepository; +import tech.powerjob.server.remote.server.ServerInfoService; import tech.powerjob.server.remote.worker.WorkerClusterQueryService; import tech.powerjob.server.common.module.WorkerInfo; import tech.powerjob.server.web.response.SystemOverviewVO; @@ -39,6 +40,8 @@ public class SystemInfoController { @Resource private InstanceInfoRepository instanceInfoRepository; + @Resource + private ServerInfoService serverInfoService; @Resource private WorkerClusterQueryService workerClusterQueryService; @@ -67,6 +70,9 @@ public class SystemInfoController { // 服务器时间 overview.setServerTime(DateFormatUtils.format(new Date(), OmsConstant.TIME_PATTERN)); + SystemOverviewVO.CurrentServerInfo info = new SystemOverviewVO.CurrentServerInfo(serverInfoService.getServerId(), serverInfoService.getServerIp(), serverInfoService.getServerVersion()); + overview.setCurrentServerInfo(info); + return ResultDTO.success(overview); } diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/SystemOverviewVO.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/SystemOverviewVO.java index e1df3238..3bc86786 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/SystemOverviewVO.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/SystemOverviewVO.java @@ -1,6 +1,8 @@ package tech.powerjob.server.web.response; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.Getter; /** * 系统概览 @@ -10,6 +12,7 @@ import lombok.Data; */ @Data public class SystemOverviewVO { + private long jobCount; private long runningInstanceCount; private long failedInstanceCount; @@ -17,4 +20,14 @@ public class SystemOverviewVO { private String timezone; // 服务器时间 private String serverTime; + + private CurrentServerInfo currentServerInfo; + + @Getter + @AllArgsConstructor + public static class CurrentServerInfo { + private final long id; + private final String ip; + private final String version; + } } From f955ae2f6161a87c0bed324907db3a6e03bb3e6b Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 5 Apr 2021 14:18:24 +0800 Subject: [PATCH 10/13] fix: incorrect worker list display #245 --- .../java/tech/powerjob/common/utils/CommonUtils.java | 12 ++++++++++++ .../powerjob/server/web/response/WorkerStatusVO.java | 9 ++++++--- .../src/main/resources/static/js/7.js | 8 ++++---- .../src/main/resources/static/js/app.js | 4 ++-- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/powerjob-common/src/main/java/tech/powerjob/common/utils/CommonUtils.java b/powerjob-common/src/main/java/tech/powerjob/common/utils/CommonUtils.java index 2c995dae..498d5b73 100644 --- a/powerjob-common/src/main/java/tech/powerjob/common/utils/CommonUtils.java +++ b/powerjob-common/src/main/java/tech/powerjob/common/utils/CommonUtils.java @@ -147,6 +147,18 @@ public class CommonUtils { return OmsConstant.NONE; } + /** + * 格式化字符串,如果是 null 或空则显示 N/A + * @param str 字符串 + * @return 结果 + */ + public static String formatString(String str) { + if (StringUtils.isEmpty(str)) { + return OmsConstant.NONE; + } + return str; + } + /** * 生成 UUID * @return uuid diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java index 35196125..32bd6ee0 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java @@ -1,6 +1,7 @@ package tech.powerjob.server.web.response; import tech.powerjob.common.model.SystemMetrics; +import tech.powerjob.common.utils.CommonUtils; import tech.powerjob.server.common.module.WorkerInfo; import lombok.Data; import lombok.NoArgsConstructor; @@ -24,6 +25,7 @@ public class WorkerStatusVO { private String protocol; private String tag; + private String lastActiveTime; // 1 -> 健康,绿色,2 -> 一般,橙色,3 -> 糟糕,红色,9999 -> 非在线机器 private int status; @@ -40,9 +42,6 @@ public class WorkerStatusVO { SystemMetrics systemMetrics = workerInfo.getSystemMetrics(); - this.protocol = workerInfo.getProtocol(); - this.tag = workerInfo.getTag(); - this.status = 1; this.address = workerInfo.getAddress(); this.cpuLoad = String.format(CPU_FORMAT, df.format(systemMetrics.getCpuLoad()), systemMetrics.getCpuProcessors()); @@ -69,5 +68,9 @@ public class WorkerStatusVO { if (workerInfo.timeout()) { this.status = 9999; } + + this.protocol = workerInfo.getProtocol(); + this.tag = CommonUtils.formatString(workerInfo.getTag()); + this.lastActiveTime = CommonUtils.formatTime(workerInfo.getLastActiveTime()); } } diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/7.js b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/7.js index 6e5bc590..be3373e9 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/7.js +++ b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/7.js @@ -8,7 +8,7 @@ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"Home\",\n data: function data() {\n return {\n systemInfo: {\n jobCount: \"N/A\",\n runningInstanceCount: \"N/A\",\n failedInstanceCount: \"N/A\",\n serverTime: \"UNKNOWN\",\n timezone: \"UNKNOWN\"\n },\n activeWorkerCount: \"N/A\",\n workerList: []\n };\n },\n methods: {\n workerTableRowClassName: function workerTableRowClassName(_ref) {\n var row = _ref.row;\n\n switch (row.status) {\n case 1:\n return 'success-row';\n\n case 2:\n return 'warning-row';\n\n default:\n return 'error-row';\n }\n }\n },\n mounted: function mounted() {\n var that = this;\n var appId = that.$store.state.appInfo.id; // 请求 Worker 列表\n\n that.axios.get(\"/system/listWorker?appId=\" + appId).then(function (res) {\n res.sort(function (a, b) {\n return a.status - b.status;\n });\n that.workerList = res;\n that.activeWorkerCount = that.workerList.length;\n }); // 请求 Overview\n\n that.axios.get(\"/system/overview?appId=\" + appId).then(function (res) {\n that.systemInfo = res; // 对比服务器时间和本地时间,误差超过一定时间弹窗警告\n // let localTime=new Date().getTime();\n // let serverTime = res.serverTime;\n // console.log(\"localTime: %o, serverTime: %o\", localTime, serverTime);\n //\n // let offset = localTime - serverTime;\n // if (Math.abs(offset) > 60000) {\n // this.$notify({\n // title: '警告',\n // message: '调度中心服务器与本地存在时间差,可能影响任务调度准确性,建议排查时间问题!',\n // type: 'warning',\n // duration: 0\n // });\n // }\n });\n }\n});\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--12-0!./node_modules/_babel-loader@8.2.2@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/_core-js@3.9.1@core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"Home\",\n data: function data() {\n return {\n systemInfo: {\n jobCount: \"N/A\",\n runningInstanceCount: \"N/A\",\n failedInstanceCount: \"N/A\",\n serverTime: \"UNKNOWN\",\n timezone: \"UNKNOWN\"\n },\n activeWorkerCount: \"N/A\",\n workerList: []\n };\n },\n methods: {\n workerTableRowClassName: function workerTableRowClassName(_ref) {\n var row = _ref.row;\n\n switch (row.status) {\n case 1:\n return 'success-row';\n\n case 2:\n return 'warning-row';\n\n case 9999:\n return 'offline-row';\n\n default:\n return 'error-row';\n }\n }\n },\n mounted: function mounted() {\n var that = this;\n var appId = that.$store.state.appInfo.id; // 请求 Worker 列表\n\n that.axios.get(\"/system/listWorker?appId=\" + appId).then(function (res) {\n res.sort(function (a, b) {\n return a.status - b.status;\n });\n that.workerList = res;\n var num = 0;\n that.workerList.forEach(function (w) {\n if (w.status !== 9999) {\n num++;\n }\n });\n that.activeWorkerCount = num;\n }); // 请求 Overview\n\n that.axios.get(\"/system/overview?appId=\" + appId).then(function (res) {\n that.systemInfo = res; // 对比服务器时间和本地时间,误差超过一定时间弹窗警告\n // let localTime=new Date().getTime();\n // let serverTime = res.serverTime;\n // console.log(\"localTime: %o, serverTime: %o\", localTime, serverTime);\n //\n // let offset = localTime - serverTime;\n // if (Math.abs(offset) > 60000) {\n // this.$notify({\n // title: '警告',\n // message: '调度中心服务器与本地存在时间差,可能影响任务调度准确性,建议排查时间问题!',\n // type: 'warning',\n // duration: 0\n // });\n // }\n });\n }\n});\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--12-0!./node_modules/_babel-loader@8.2.2@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); /***/ }), @@ -20,7 +20,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"home\" } },\n [\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\n \"el-card\",\n {\n staticStyle: { \"text-align\": \"center\" },\n attrs: { shadow: \"always\" }\n },\n [\n _c(\"div\", [\n _vm._v(\" \" + _vm._s(_vm.$t(\"message.appName\")) + \" \")\n ]),\n _c(\"div\", [\n _vm._v(\n \" \" + _vm._s(this.$store.state.appInfo.appName) + \" \"\n )\n ])\n ]\n )\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\n \"el-card\",\n {\n staticStyle: { \"text-align\": \"center\" },\n attrs: { shadow: \"always\" }\n },\n [\n _c(\"div\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/PowerJob/PowerJob\",\n target: \"_blank\"\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"message.githubURL\")))]\n )\n ]),\n _c(\"div\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/PowerJob/PowerJob/wiki\",\n target: \"_blank\"\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"message.docURL\")))]\n )\n ])\n ]\n )\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.omsServerTimezone\")) +\n \":\" +\n _vm._s(_vm.systemInfo.timezone) +\n \" \"\n )\n ]),\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.omsServerTime\")) +\n \":\" +\n _vm._s(_vm.systemInfo.serverTime) +\n \" \"\n )\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.localBrowserTimezone\")) +\n \":\" +\n _vm._s(Intl.DateTimeFormat().resolvedOptions().timeZone) +\n \" \"\n )\n ]),\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.localBrowserTime\")) +\n \":\" +\n _vm._s(this.common.timestamp2Str(new Date().getTime())) +\n \" \"\n )\n ])\n ])\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.totalJobNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.jobCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-orange\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.runningInstanceNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.runningInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-timer\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.recentFailedInstanceNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.failedInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-bell\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.workerNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.activeWorkerCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-cpu\" })\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 24 } },\n [\n _c(\n \"el-table\",\n {\n staticStyle: { width: \"100%\" },\n attrs: {\n data: _vm.workerList,\n height: \"400px\",\n \"row-class-name\": _vm.workerTableRowClassName\n }\n },\n [\n _c(\"el-table-column\", {\n attrs: {\n prop: \"address\",\n label: _vm.$t(\"message.workerAddress\")\n }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"cpuLoad\", label: _vm.$t(\"message.cpuLoad\") }\n }),\n _c(\"el-table-column\", {\n attrs: {\n prop: \"memoryLoad\",\n label: _vm.$t(\"message.memoryLoad\")\n }\n }),\n _c(\"el-table-column\", {\n attrs: {\n prop: \"diskLoad\",\n label: _vm.$t(\"message.diskLoad\")\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%225adedfe8-vue-loader-template%22%7D!./node_modules/_vue-loader@15.9.6@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"home\" } },\n [\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\n \"el-card\",\n {\n staticStyle: { \"text-align\": \"center\" },\n attrs: { shadow: \"always\" }\n },\n [\n _c(\"div\", [\n _vm._v(\" \" + _vm._s(_vm.$t(\"message.appName\")) + \" \")\n ]),\n _c(\"div\", [\n _vm._v(\n \" \" + _vm._s(this.$store.state.appInfo.appName) + \" \"\n )\n ])\n ]\n )\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\n \"el-card\",\n {\n staticStyle: { \"text-align\": \"center\" },\n attrs: { shadow: \"always\" }\n },\n [\n _c(\"div\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/PowerJob/PowerJob\",\n target: \"_blank\"\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"message.githubURL\")))]\n )\n ]),\n _c(\"div\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/PowerJob/PowerJob/wiki\",\n target: \"_blank\"\n }\n },\n [_vm._v(_vm._s(_vm.$t(\"message.docURL\")))]\n )\n ])\n ]\n )\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.omsServerTimezone\")) +\n \":\" +\n _vm._s(_vm.systemInfo.timezone) +\n \" \"\n )\n ]),\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.omsServerTime\")) +\n \":\" +\n _vm._s(_vm.systemInfo.serverTime) +\n \" \"\n )\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.localBrowserTimezone\")) +\n \":\" +\n _vm._s(Intl.DateTimeFormat().resolvedOptions().timeZone) +\n \" \"\n )\n ]),\n _c(\"div\", [\n _vm._v(\n \" \" +\n _vm._s(_vm.$t(\"message.localBrowserTime\")) +\n \":\" +\n _vm._s(this.common.timestamp2Str(new Date().getTime())) +\n \" \"\n )\n ])\n ])\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.totalJobNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.jobCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-orange\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.runningInstanceNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.runningInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-timer\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.recentFailedInstanceNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.failedInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-bell\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(_vm._s(_vm.$t(\"message.workerNum\")))\n ]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.activeWorkerCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-cpu\" })\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 24 } },\n [\n _c(\n \"el-table\",\n {\n staticStyle: { width: \"100%\" },\n attrs: {\n data: _vm.workerList,\n height: \"400px\",\n \"row-class-name\": _vm.workerTableRowClassName\n }\n },\n [\n _c(\"el-table-column\", {\n attrs: {\n prop: \"address\",\n label: _vm.$t(\"message.workerAddress\")\n }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"cpuLoad\", label: _vm.$t(\"message.cpuLoad\") }\n }),\n _c(\"el-table-column\", {\n attrs: {\n prop: \"memoryLoad\",\n label: _vm.$t(\"message.memoryLoad\")\n }\n }),\n _c(\"el-table-column\", {\n attrs: {\n prop: \"diskLoad\",\n label: _vm.$t(\"message.diskLoad\")\n }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"tag\", label: \"tag\" }\n }),\n _c(\"el-table-column\", {\n attrs: {\n prop: \"lastActiveTime\",\n label: _vm.$t(\"message.lastActiveTime\")\n }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%225adedfe8-vue-loader-template%22%7D!./node_modules/_vue-loader@15.9.6@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); /***/ }), @@ -31,7 +31,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* 头部信息 */\\n.wrap[data-v-069f7be0] {\\n background: #fff;\\n display: flex;\\n text-align: center;\\n justify-content: space-around;\\n align-items: center;\\n margin: 10px;\\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\\n font-size: 1.5rem;\\n font-weight: bolder;\\n height: 131px;\\n}\\n.mTitle[data-v-069f7be0]{\\n font-size: 16px;\\n color:#0f0f0fad;\\n margin-bottom: 8px;\\n}\\n.mText[data-v-069f7be0]{\\n font-size: 18px;\\n color:#0f0f0fff;\\n margin-bottom: 8px;\\n}\\n.el-card[data-v-069f7be0] {\\n margin: 10px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/_vue-loader@15.9.6@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--6-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* 头部信息 */\\n.wrap[data-v-069f7be0] {\\n background: #fff;\\n display: flex;\\n text-align: center;\\n justify-content: space-around;\\n align-items: center;\\n margin: 10px;\\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\\n font-size: 1.5rem;\\n font-weight: bolder;\\n height: 131px;\\n}\\n.mTitle[data-v-069f7be0]{\\n font-size: 16px;\\n color:#0f0f0fad;\\n margin-bottom: 8px;\\n}\\n.mText[data-v-069f7be0]{\\n font-size: 18px;\\n color:#0f0f0fff;\\n margin-bottom: 8px;\\n}\\n.el-card[data-v-069f7be0] {\\n margin: 10px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/_vue-loader@15.9.6@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--6-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); /***/ }), @@ -42,7 +42,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../. /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.el-table .warning-row {\\n color: darkgoldenrod;\\n}\\n.el-table .success-row {\\n color: green;\\n}\\n.el-table .error-row {\\n color: red;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/_vue-loader@15.9.6@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--6-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@3.6.0@css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.el-table .warning-row {\\n color: darkgoldenrod;\\n}\\n.el-table .success-row {\\n color: green;\\n}\\n.el-table .error-row {\\n color: red;\\n}\\n.el-table .offline-row {\\n color: darkgray;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/_css-loader@3.6.0@css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/_vue-loader@15.9.6@vue-loader/lib/loaders/stylePostLoader.js!./node_modules/_postcss-loader@3.0.0@postcss-loader/src??ref--6-oneOf-1-2!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.6@vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js index 07e8359d..74218006 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js +++ b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js @@ -676,7 +676,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! element-ui/lib/locale/lang/zh-CN */ \"./node_modules/_element-ui@2.15.1@element-ui/lib/locale/lang/zh-CN.js\");\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nvar cn = Object(_Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n message: {\n // common\n 'save': '保存',\n 'cancel': '取消',\n 'refresh': '刷新',\n 'query': '查询',\n 'reset': '重置',\n 'bulkImport': '批量导入',\n 'keyword': '关键字',\n 'run': '运行',\n 'edit': '编辑',\n 'delete': '删除',\n 'success': '成功',\n 'failed': '失败',\n 'detail': '详情',\n 'download': '下载',\n 'stop': '停止',\n 'back': '返回',\n 'all': '全部',\n 'more': '| 更多',\n // 欢迎界面\n 'appRegister': '执行应用注册',\n 'userRegister': '报警用户录入',\n 'appNameInputPLH': '请输入应用名称',\n 'appName': '应用名称',\n 'appPassword': '密码',\n 'register': '注册',\n 'name': '姓名',\n 'phone': '手机号',\n 'email': '邮箱地址',\n 'webhook': 'WebHook',\n 'welcomeTitle': '欢迎使用 PowerJob!',\n 'login': '登陆',\n 'logout': '退出',\n 'changeAppInfo': '修改应用信息',\n 'newPassword': '新密码',\n 'newPassword2': '确认密码',\n 'stayLogged': '保持登录状态',\n // 左侧tab栏\n 'tabHome': '系统首页',\n 'tabJobManage': '任务管理',\n 'tabJobInstance': '任务实例',\n 'tabWorkflowManage': '工作流管理',\n 'tabWfInstance': '工作流实例',\n 'tabContainerOps': '容器',\n 'tabTemplate': '模版生成',\n 'tabContainerManager': '容器运维',\n // 系统首页\n 'omsServerTime': '调度服务器时间',\n 'omsServerTimezone': '调度服务器时区',\n 'localBrowserTime': '本地时间',\n 'localBrowserTimezone': '本地时区',\n 'githubURL': '项目地址',\n 'docURL': '文档地址',\n 'totalJobNum': '任务总数',\n 'runningInstanceNum': '当前运行实例数',\n 'recentFailedInstanceNum': '近期失败任务数',\n 'workerNum': '集群机器数',\n 'workerAddress': '机器地址',\n 'cpuLoad': 'CPU 占用',\n 'memoryLoad': '内存占用',\n 'diskLoad': '磁盘占用',\n // 任务管理\n 'jobId': '任务 ID',\n 'instanceId': '任务实例 ID',\n 'jobName': '任务名称',\n 'scheduleInfo': '定时信息',\n 'executeType': '执行类型',\n 'processorType': '处理器类型',\n 'status': '状态',\n 'operation': '操作',\n 'newJob': '新建任务',\n 'jobDescription': '任务描述',\n 'jobParams': '任务参数',\n 'timeExpressionType': '时间表达式类型',\n 'timeExpressionPlaceHolder': 'CRON 填写 CRON 表达式,秒级任务填写整数,API 无需填写',\n 'executeConfig': '执行配置',\n 'javaProcessorInfoPLH': '全限定类名,eg:tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': '容器ID#全限定类名,eg:1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'SHELL 脚本文件内容',\n 'pythonProcessorInfoPLH': 'Python 脚本文件内容',\n 'runtimeConfig': '运行时配置',\n 'maxInstanceNum': '最大实例数',\n 'threadConcurrency': '单机线程并发度',\n 'timeout': '运行时间限制(毫秒)',\n 'retryConfig': '重试配置',\n 'taskRetryTimes': 'Instance 重试次数',\n 'subTaskRetryTimes': \"Task 重试次数\",\n 'workerConfig': '机器配置',\n 'minCPU': '最低 CPU 核心数',\n 'minMemory': '最低内存(GB)',\n 'minDisk': '最低磁盘空间(GB)',\n 'clusterConfig': '集群配置',\n 'designatedWorkerAddress': '执行机器地址',\n 'designatedWorkerAddressPLH': '执行机器地址(可选,不指定代表全部;多值英文逗号分割)',\n 'maxWorkerNum': '最大执行机器数量',\n 'maxWorkerNumPLH': '最大执行机器数量(0代表不限)',\n 'alarmConfig': '报警配置',\n 'alarmSelectorPLH': '选择报警通知人员',\n 'standalone': '单机执行',\n 'broadcast': '广播执行',\n 'map': 'Map执行',\n 'mapReduce': 'MapReduce 执行',\n 'fixRate': '固定频率(毫秒)',\n 'fixDelay': '固定延迟(毫秒)',\n 'workflow': '工作流',\n 'validateTimeExpression': '校验定时参数',\n 'javaContainer': 'Java(容器)',\n 'runHistory': '运行记录',\n 'reRun': '重试',\n 'builtIn': '内建',\n 'external': '外置(动态加载)',\n // 任务实例管理\n 'wfInstanceId': '工作流实例 ID',\n 'normalInstance': '普通任务实例',\n 'wfInstance': '工作流任务实例',\n 'triggerTime': '触发时间',\n 'finishedTime': '结束时间',\n 'log': '日志',\n 'runningTimes': '运行次数',\n 'taskTrackerAddress': 'TaskTracker 地址',\n 'startTime': '开始时间',\n 'expectedTriggerTime': '预计执行时间',\n 'result': '任务结果',\n 'subTaskInfo': 'Task 信息',\n // 'secondlyJobHistory': '最近 10 条秒级任务历史记录(秒级任务专用)',\n 'secondlyJobHistory': '最近 10 条秒级任务历史记录',\n 'subInstanceId': '子任务实例 ID',\n 'instanceParams': '任务实例参数',\n // 工作流管理\n 'wfId': '工作流 ID',\n 'wfName': '工作流名称',\n 'newWorkflow': '新建工作流',\n 'wfDescription': '工作流描述',\n 'importJob': '导入任务',\n 'deleteJob': '删除任务',\n 'newStartPoint': '新增起点',\n 'newEndPoint': '新增终点',\n 'deleteEdge': '删除边',\n 'importJobTitle': \"请选择需要导入工作流的任务\",\n 'wfTimeExpressionPLH': 'CRON 填写 CRON 表达式,API 无需填写',\n 'import': '导入',\n 'ntfClickNeedDeleteNode': '请点击需要删除的节点',\n 'ntfClickStartPoint': '请点击起始节点',\n 'ntfClickTargetPoint': '请点击目标节点',\n 'ntfClickDeleteEdge': '请点击需要删除的边',\n 'ntfAddStartPointFirst': '请先添加起点!',\n 'ntfInvalidEdge': '非法操作(起点终点相同)!',\n // 工作流实例\n 'wfTips': 'tips:点击节点可查看任务实例详情',\n 'ntfClickNoInstanceNode': '未生成任务实例,无法查看详情!',\n 'wfInitParams': '启动参数',\n // 容器\n 'newContainer': '新增容器',\n 'containerType': '容器类型',\n 'containerGitURL': 'Git 仓库地址',\n 'branchName': '分支名称',\n 'username': '用户名',\n 'oldPassword': '旧密码',\n 'password': '密码',\n 'containerId': '容器 ID',\n 'containerName': '容器名称',\n 'containerVersion': '容器版本',\n 'deployTime': '部署时间',\n 'deploy': '部署',\n 'deployedWorkerList': '机器列表',\n 'uploadTips': '拖拽或点击文件后会自动上传',\n // 任务实例状态\n 'waitingDispatch': '等待派发',\n 'waitingWorkerReceive': '等待Worker接收',\n 'running': '运行中',\n 'stopped': '手动停止',\n 'canceled': '手动取消',\n 'wfWaiting': '等待调度',\n 'waitingUpstream': '等待上游节点',\n // 新增的提示信息\n 'noSelect': '请至少选中一条数据',\n 'nodeName': '节点名称',\n 'nodeParams': '节点参数',\n 'enable': '是否启用',\n 'skipWhenFailed': '失败跳过',\n 'fullScreen': '全屏',\n 'zoomIn': '放大',\n 'zoomOut': '缩小',\n 'autoFit': '自适应',\n 'markerSuccess': '标记成功',\n 'restart': '重试',\n 'wfContext': '上下文',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': '复制'\n }\n}, element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1___default.a);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cn);\n\n//# sourceURL=webpack:///./src/i18n/langs/cn.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! element-ui/lib/locale/lang/zh-CN */ \"./node_modules/_element-ui@2.15.1@element-ui/lib/locale/lang/zh-CN.js\");\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nvar cn = Object(_Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n message: {\n // common\n 'save': '保存',\n 'cancel': '取消',\n 'refresh': '刷新',\n 'query': '查询',\n 'reset': '重置',\n 'bulkImport': '批量导入',\n 'keyword': '关键字',\n 'run': '运行',\n 'edit': '编辑',\n 'delete': '删除',\n 'success': '成功',\n 'failed': '失败',\n 'detail': '详情',\n 'download': '下载',\n 'stop': '停止',\n 'back': '返回',\n 'all': '全部',\n 'more': '| 更多',\n // 欢迎界面\n 'appRegister': '执行应用注册',\n 'userRegister': '报警用户录入',\n 'appNameInputPLH': '请输入应用名称',\n 'appName': '应用名称',\n 'appPassword': '密码',\n 'register': '注册',\n 'name': '姓名',\n 'phone': '手机号',\n 'email': '邮箱地址',\n 'webhook': 'WebHook',\n 'welcomeTitle': '欢迎使用 PowerJob!',\n 'login': '登陆',\n 'logout': '退出',\n 'changeAppInfo': '修改应用信息',\n 'newPassword': '新密码',\n 'newPassword2': '确认密码',\n 'stayLogged': '保持登录状态',\n // 左侧tab栏\n 'tabHome': '系统首页',\n 'tabJobManage': '任务管理',\n 'tabJobInstance': '任务实例',\n 'tabWorkflowManage': '工作流管理',\n 'tabWfInstance': '工作流实例',\n 'tabContainerOps': '容器',\n 'tabTemplate': '模版生成',\n 'tabContainerManager': '容器运维',\n // 系统首页\n 'omsServerTime': '调度服务器时间',\n 'omsServerTimezone': '调度服务器时区',\n 'localBrowserTime': '本地时间',\n 'localBrowserTimezone': '本地时区',\n 'githubURL': '项目地址',\n 'docURL': '文档地址',\n 'totalJobNum': '任务总数',\n 'runningInstanceNum': '当前运行实例数',\n 'recentFailedInstanceNum': '近期失败任务数',\n 'workerNum': '集群机器数',\n 'workerAddress': '机器地址',\n 'cpuLoad': 'CPU 占用',\n 'memoryLoad': '内存占用',\n 'diskLoad': '磁盘占用',\n 'lastActiveTime': '上次在线时间',\n // 任务管理\n 'jobId': '任务 ID',\n 'instanceId': '任务实例 ID',\n 'jobName': '任务名称',\n 'scheduleInfo': '定时信息',\n 'executeType': '执行类型',\n 'processorType': '处理器类型',\n 'status': '状态',\n 'operation': '操作',\n 'newJob': '新建任务',\n 'jobDescription': '任务描述',\n 'jobParams': '任务参数',\n 'timeExpressionType': '时间表达式类型',\n 'timeExpressionPlaceHolder': 'CRON 填写 CRON 表达式,秒级任务填写整数,API 无需填写',\n 'executeConfig': '执行配置',\n 'javaProcessorInfoPLH': '全限定类名,eg:tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': '容器ID#全限定类名,eg:1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'SHELL 脚本文件内容',\n 'pythonProcessorInfoPLH': 'Python 脚本文件内容',\n 'runtimeConfig': '运行时配置',\n 'maxInstanceNum': '最大实例数',\n 'threadConcurrency': '单机线程并发度',\n 'timeout': '运行时间限制(毫秒)',\n 'retryConfig': '重试配置',\n 'taskRetryTimes': 'Instance 重试次数',\n 'subTaskRetryTimes': \"Task 重试次数\",\n 'workerConfig': '机器配置',\n 'minCPU': '最低 CPU 核心数',\n 'minMemory': '最低内存(GB)',\n 'minDisk': '最低磁盘空间(GB)',\n 'clusterConfig': '集群配置',\n 'designatedWorkerAddress': '执行机器地址',\n 'designatedWorkerAddressPLH': '执行机器地址(可选,不指定代表全部;多值英文逗号分割)',\n 'maxWorkerNum': '最大执行机器数量',\n 'maxWorkerNumPLH': '最大执行机器数量(0代表不限)',\n 'alarmConfig': '报警配置',\n 'alarmSelectorPLH': '选择报警通知人员',\n 'standalone': '单机执行',\n 'broadcast': '广播执行',\n 'map': 'Map执行',\n 'mapReduce': 'MapReduce 执行',\n 'fixRate': '固定频率(毫秒)',\n 'fixDelay': '固定延迟(毫秒)',\n 'workflow': '工作流',\n 'validateTimeExpression': '校验定时参数',\n 'javaContainer': 'Java(容器)',\n 'runHistory': '运行记录',\n 'reRun': '重试',\n 'builtIn': '内建',\n 'external': '外置(动态加载)',\n // 任务实例管理\n 'wfInstanceId': '工作流实例 ID',\n 'normalInstance': '普通任务实例',\n 'wfInstance': '工作流任务实例',\n 'triggerTime': '触发时间',\n 'finishedTime': '结束时间',\n 'log': '日志',\n 'runningTimes': '运行次数',\n 'taskTrackerAddress': 'TaskTracker 地址',\n 'startTime': '开始时间',\n 'expectedTriggerTime': '预计执行时间',\n 'result': '任务结果',\n 'subTaskInfo': 'Task 信息',\n // 'secondlyJobHistory': '最近 10 条秒级任务历史记录(秒级任务专用)',\n 'secondlyJobHistory': '最近 10 条秒级任务历史记录',\n 'subInstanceId': '子任务实例 ID',\n 'instanceParams': '任务实例参数',\n // 工作流管理\n 'wfId': '工作流 ID',\n 'wfName': '工作流名称',\n 'newWorkflow': '新建工作流',\n 'wfDescription': '工作流描述',\n 'importJob': '导入任务',\n 'deleteJob': '删除任务',\n 'newStartPoint': '新增起点',\n 'newEndPoint': '新增终点',\n 'deleteEdge': '删除边',\n 'importJobTitle': \"请选择需要导入工作流的任务\",\n 'wfTimeExpressionPLH': 'CRON 填写 CRON 表达式,API 无需填写',\n 'import': '导入',\n 'ntfClickNeedDeleteNode': '请点击需要删除的节点',\n 'ntfClickStartPoint': '请点击起始节点',\n 'ntfClickTargetPoint': '请点击目标节点',\n 'ntfClickDeleteEdge': '请点击需要删除的边',\n 'ntfAddStartPointFirst': '请先添加起点!',\n 'ntfInvalidEdge': '非法操作(起点终点相同)!',\n // 工作流实例\n 'wfTips': 'tips:点击节点可查看任务实例详情',\n 'ntfClickNoInstanceNode': '未生成任务实例,无法查看详情!',\n 'wfInitParams': '启动参数',\n // 容器\n 'newContainer': '新增容器',\n 'containerType': '容器类型',\n 'containerGitURL': 'Git 仓库地址',\n 'branchName': '分支名称',\n 'username': '用户名',\n 'oldPassword': '旧密码',\n 'password': '密码',\n 'containerId': '容器 ID',\n 'containerName': '容器名称',\n 'containerVersion': '容器版本',\n 'deployTime': '部署时间',\n 'deploy': '部署',\n 'deployedWorkerList': '机器列表',\n 'uploadTips': '拖拽或点击文件后会自动上传',\n // 任务实例状态\n 'waitingDispatch': '等待派发',\n 'waitingWorkerReceive': '等待Worker接收',\n 'running': '运行中',\n 'stopped': '手动停止',\n 'canceled': '手动取消',\n 'wfWaiting': '等待调度',\n 'waitingUpstream': '等待上游节点',\n // 新增的提示信息\n 'noSelect': '请至少选中一条数据',\n 'nodeName': '节点名称',\n 'nodeParams': '节点参数',\n 'enable': '是否启用',\n 'skipWhenFailed': '失败跳过',\n 'fullScreen': '全屏',\n 'zoomIn': '放大',\n 'zoomOut': '缩小',\n 'autoFit': '自适应',\n 'markerSuccess': '标记成功',\n 'restart': '重试',\n 'wfContext': '上下文',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': '复制'\n }\n}, element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_1___default.a);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cn);\n\n//# sourceURL=webpack:///./src/i18n/langs/cn.js?"); /***/ }), @@ -688,7 +688,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Use /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! element-ui/lib/locale/lang/en */ \"./node_modules/_element-ui@2.15.1@element-ui/lib/locale/lang/en.js\");\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nvar en = Object(_Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n message: {\n 'save': 'Save',\n 'cancel': 'Cancel',\n 'refresh': 'Refresh',\n 'query': 'Query',\n 'reset': 'Reset',\n 'bulkImport': 'Bulk Import',\n 'keyword': 'Keyword',\n 'run': 'Run',\n 'edit': 'Edit',\n 'delete': 'Delete',\n 'success': 'Success',\n 'failed': 'Failed',\n 'detail': 'Detail',\n 'download': 'Download',\n 'stop': 'Stop',\n 'back': 'Back',\n 'all': 'ALL',\n 'more': '| More',\n // 欢迎界面\n 'appRegister': 'App Registration',\n 'userRegister': 'User Registration',\n 'appNameInputPLH': 'Enter The AppName',\n 'appName': 'AppName',\n 'appPassword': 'AppPassword',\n 'register': 'Register',\n 'name': 'Name',\n 'phone': 'Phone',\n 'email': 'Email',\n 'webhook': 'Webhook',\n 'welcomeTitle': 'Welcome to use PowerJob!',\n 'login': 'Login',\n 'logout': 'Logout',\n 'changeAppInfo': 'Change AppInfo',\n 'newPassword': 'New Password',\n 'newPassword2': 'Check New Password',\n 'stayLogged': 'Keep me logged in',\n 'tabHome': 'Home',\n 'tabJobManage': 'Job management',\n 'tabJobInstance': 'Job instances',\n 'tabWorkflowManage': 'Workflow management',\n 'tabWfInstance': 'Workflow instances',\n 'tabContainerOps': 'Container DevOps',\n 'tabTemplate': 'Template generator',\n 'tabContainerManager': 'Container Management',\n 'omsServerTime': 'Server Time',\n 'omsServerTimezone': 'Server Timezone',\n 'localBrowserTime': 'Local Time',\n 'localBrowserTimezone': 'Local Timezone',\n 'githubURL': 'GitHub Repo',\n 'docURL': 'Document Address',\n 'totalJobNum': 'Total job num',\n 'runningInstanceNum': 'Running instance num',\n 'recentFailedInstanceNum': 'Recent failed instance num',\n 'workerNum': 'Worker node num',\n 'workerAddress': 'Worker address',\n 'cpuLoad': 'CPU Load',\n 'memoryLoad': 'Memory Load',\n 'diskLoad': 'Disk Load',\n // JobManage\n 'jobId': 'Job ID',\n 'instanceId': 'Instance ID',\n 'jobName': 'Job name',\n 'scheduleInfo': 'Schedule info',\n 'executeType': 'Execution type',\n 'processorType': 'Processor type',\n 'status': 'Status',\n 'operation': 'Operation',\n 'newJob': 'New job',\n 'jobDescription': 'Job description',\n 'jobParams': 'Job params',\n 'timeExpressionType': 'Time expression type',\n 'timeExpressionPlaceHolder': 'Cron expression or number of millions for fixed_rate/fixed_delay job',\n 'executeConfig': 'Execution config',\n 'javaProcessorInfoPLH': 'Classname, eg: tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': 'ContainerID#classname, eg: 1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'Shell script',\n 'pythonProcessorInfoPLH': 'Python script',\n 'runtimeConfig': 'Runtime config',\n 'maxInstanceNum': 'Max instance num',\n 'threadConcurrency': 'Thread concurrency',\n 'timeout': 'Time limit (ms)',\n 'retryConfig': 'Retry config',\n 'taskRetryTimes': 'Instance retry times',\n 'subTaskRetryTimes': \"Task retry times\",\n 'workerConfig': 'Worker config',\n 'minCPU': 'MinAvailableCPUCores',\n 'minMemory': 'MinMemory(GB)',\n 'minDisk': 'MinDisk(GB)',\n 'clusterConfig': 'Cluster config',\n 'designatedWorkerAddress': 'Designated worker address',\n 'designatedWorkerAddressPLH': 'Empty for all workers; ip:port,ip:port for specific',\n 'maxWorkerNum': 'Max worker num',\n 'maxWorkerNumPLH': '0 means no limit',\n 'alarmConfig': 'Alarm config',\n 'alarmSelectorPLH': 'Alarm receiver(s)',\n 'standalone': 'Standalone',\n 'broadcast': 'Broadcast',\n 'map': 'MAP',\n 'mapReduce': 'MapReduce',\n 'fixRate': 'Fixed rate (ms)',\n 'fixDelay': 'Fixed delay (ms)',\n 'workflow': 'Workflow',\n 'validateTimeExpression': 'Validate',\n 'javaContainer': 'External',\n 'runHistory': 'History',\n 'reRun': 'Retry',\n 'builtIn': 'BUILT_IN',\n 'External': 'EXTERNAL',\n // JobInstance\n 'wfInstanceId': 'WorkflowInstanceId',\n 'normalInstance': 'Normal instance',\n 'wfInstance': 'Workflow instance',\n 'triggerTime': 'Trigger time',\n 'finishedTime': 'Finished time',\n 'log': 'Log',\n 'runningTimes': 'Running times',\n 'taskTrackerAddress': 'TaskTracker address',\n 'startTime': 'Start time',\n 'expectedTriggerTime': 'Expected trigger time',\n 'result': 'Result',\n 'subTaskInfo': 'Task info',\n 'secondlyJobHistory': 'Secondly job history',\n 'subInstanceId': 'SubInstanceId',\n 'instanceParams': 'InstanceParams',\n // workflowManage\n 'wfId': 'Workflow ID',\n 'wfName': 'Workflow name',\n 'newWorkflow': 'New workflow',\n 'wfDescription': 'Description',\n 'importJob': 'Import job',\n 'deleteJob': 'Delete job',\n 'newStartPoint': 'New starting point',\n 'newEndPoint': 'New ending point',\n 'deleteEdge': 'Delete edge',\n 'importJobTitle': \"Select jobs\",\n 'wfTimeExpressionPLH': 'Cron expression for CRON or empty for API',\n 'import': 'Import',\n 'ntfClickNeedDeleteNode': 'Please click on the node you want to delete.',\n 'ntfClickStartPoint': 'Please click on the start node',\n 'ntfClickTargetPoint': 'Please click on the end node',\n 'ntfClickDeleteEdge': 'Please click on the edge you want to remove.',\n 'ntfAddStartPointFirst': 'Please add the starting point first!',\n 'ntfInvalidEdge': 'Illegal operation (same origin and destination)!',\n // workflowInstance\n 'wfTips': 'tips:Click on a node to view details of the job instance',\n 'ntfClickNoInstanceNode': 'No instances have been generated, and details cannot be viewed!',\n 'wfInitParams': 'InitParams',\n // 容器\n 'newContainer': 'New container',\n 'containerType': 'Type',\n 'containerGitURL': 'Git URL',\n 'branchName': 'Branch',\n 'username': 'Username',\n 'oldPassword': 'Old password',\n 'password': 'Password',\n 'containerId': 'ID',\n 'containerName': 'Name',\n 'containerVersion': 'Version',\n 'deployTime': 'Deployed time',\n 'deploy': 'Deploy',\n 'deployedWorkerList': 'Worker list',\n 'uploadTips': 'Drag and drop or click on the file to upload it automatically',\n // 任务实例状态\n 'waitingDispatch': 'Waiting dispatch',\n 'waitingWorkerReceive': 'Waiting receive',\n 'running': 'Running',\n 'stopped': 'Stopped',\n 'canceled': 'Canceled',\n 'wfWaiting': 'Waiting',\n 'waitingUpstream': 'Waiting upstream',\n // 新增的提示信息\n 'noSelect': 'Please select at least one data item',\n 'nodeName': 'Node name',\n 'nodeParams': 'Node parameter',\n 'enable': 'Enable',\n 'skipWhenFailed': 'Allow skips when failed',\n 'fullScreen': 'Full Screen',\n 'zoomIn': 'Zoom In',\n 'zoomOut': 'Zoom out',\n 'autoFit': 'Auto Fit',\n 'markerSuccess': 'Marked Success',\n 'restart': 'restart',\n 'wfContext': 'Context',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': 'Copy'\n }\n}, element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1___default.a);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (en);\n\n//# sourceURL=webpack:///./src/i18n/langs/en.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2 */ \"./node_modules/_@babel_runtime@7.13.9@@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! element-ui/lib/locale/lang/en */ \"./node_modules/_element-ui@2.15.1@element-ui/lib/locale/lang/en.js\");\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nvar en = Object(_Users_salieri_Desktop_code_PowerJob_Console_node_modules_babel_runtime_7_13_9_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n message: {\n 'save': 'Save',\n 'cancel': 'Cancel',\n 'refresh': 'Refresh',\n 'query': 'Query',\n 'reset': 'Reset',\n 'bulkImport': 'Bulk Import',\n 'keyword': 'Keyword',\n 'run': 'Run',\n 'edit': 'Edit',\n 'delete': 'Delete',\n 'success': 'Success',\n 'failed': 'Failed',\n 'detail': 'Detail',\n 'download': 'Download',\n 'stop': 'Stop',\n 'back': 'Back',\n 'all': 'ALL',\n 'more': '| More',\n // 欢迎界面\n 'appRegister': 'App Registration',\n 'userRegister': 'User Registration',\n 'appNameInputPLH': 'Enter The AppName',\n 'appName': 'AppName',\n 'appPassword': 'AppPassword',\n 'register': 'Register',\n 'name': 'Name',\n 'phone': 'Phone',\n 'email': 'Email',\n 'webhook': 'Webhook',\n 'welcomeTitle': 'Welcome to use PowerJob!',\n 'login': 'Login',\n 'logout': 'Logout',\n 'changeAppInfo': 'Change AppInfo',\n 'newPassword': 'New Password',\n 'newPassword2': 'Check New Password',\n 'stayLogged': 'Keep me logged in',\n 'tabHome': 'Home',\n 'tabJobManage': 'Job management',\n 'tabJobInstance': 'Job instances',\n 'tabWorkflowManage': 'Workflow management',\n 'tabWfInstance': 'Workflow instances',\n 'tabContainerOps': 'Container DevOps',\n 'tabTemplate': 'Template generator',\n 'tabContainerManager': 'Container Management',\n 'omsServerTime': 'Server Time',\n 'omsServerTimezone': 'Server Timezone',\n 'localBrowserTime': 'Local Time',\n 'localBrowserTimezone': 'Local Timezone',\n 'githubURL': 'GitHub Repo',\n 'docURL': 'Document Address',\n 'totalJobNum': 'Total job num',\n 'runningInstanceNum': 'Running instance num',\n 'recentFailedInstanceNum': 'Recent failed instance num',\n 'workerNum': 'Worker node num',\n 'workerAddress': 'Worker address',\n 'cpuLoad': 'CPU Load',\n 'memoryLoad': 'Memory Load',\n 'diskLoad': 'Disk Load',\n 'lastActiveTime': 'Last Active Time',\n // JobManage\n 'jobId': 'Job ID',\n 'instanceId': 'Instance ID',\n 'jobName': 'Job name',\n 'scheduleInfo': 'Schedule info',\n 'executeType': 'Execution type',\n 'processorType': 'Processor type',\n 'status': 'Status',\n 'operation': 'Operation',\n 'newJob': 'New job',\n 'jobDescription': 'Job description',\n 'jobParams': 'Job params',\n 'timeExpressionType': 'Time expression type',\n 'timeExpressionPlaceHolder': 'Cron expression or number of millions for fixed_rate/fixed_delay job',\n 'executeConfig': 'Execution config',\n 'javaProcessorInfoPLH': 'Classname, eg: tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': 'ContainerID#classname, eg: 1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'Shell script',\n 'pythonProcessorInfoPLH': 'Python script',\n 'runtimeConfig': 'Runtime config',\n 'maxInstanceNum': 'Max instance num',\n 'threadConcurrency': 'Thread concurrency',\n 'timeout': 'Time limit (ms)',\n 'retryConfig': 'Retry config',\n 'taskRetryTimes': 'Instance retry times',\n 'subTaskRetryTimes': \"Task retry times\",\n 'workerConfig': 'Worker config',\n 'minCPU': 'MinAvailableCPUCores',\n 'minMemory': 'MinMemory(GB)',\n 'minDisk': 'MinDisk(GB)',\n 'clusterConfig': 'Cluster config',\n 'designatedWorkerAddress': 'Designated worker address',\n 'designatedWorkerAddressPLH': 'Empty for all workers; ip:port,ip:port for specific',\n 'maxWorkerNum': 'Max worker num',\n 'maxWorkerNumPLH': '0 means no limit',\n 'alarmConfig': 'Alarm config',\n 'alarmSelectorPLH': 'Alarm receiver(s)',\n 'standalone': 'Standalone',\n 'broadcast': 'Broadcast',\n 'map': 'MAP',\n 'mapReduce': 'MapReduce',\n 'fixRate': 'Fixed rate (ms)',\n 'fixDelay': 'Fixed delay (ms)',\n 'workflow': 'Workflow',\n 'validateTimeExpression': 'Validate',\n 'javaContainer': 'External',\n 'runHistory': 'History',\n 'reRun': 'Retry',\n 'builtIn': 'BUILT_IN',\n 'External': 'EXTERNAL',\n // JobInstance\n 'wfInstanceId': 'WorkflowInstanceId',\n 'normalInstance': 'Normal instance',\n 'wfInstance': 'Workflow instance',\n 'triggerTime': 'Trigger time',\n 'finishedTime': 'Finished time',\n 'log': 'Log',\n 'runningTimes': 'Running times',\n 'taskTrackerAddress': 'TaskTracker address',\n 'startTime': 'Start time',\n 'expectedTriggerTime': 'Expected trigger time',\n 'result': 'Result',\n 'subTaskInfo': 'Task info',\n 'secondlyJobHistory': 'Secondly job history',\n 'subInstanceId': 'SubInstanceId',\n 'instanceParams': 'InstanceParams',\n // workflowManage\n 'wfId': 'Workflow ID',\n 'wfName': 'Workflow name',\n 'newWorkflow': 'New workflow',\n 'wfDescription': 'Description',\n 'importJob': 'Import job',\n 'deleteJob': 'Delete job',\n 'newStartPoint': 'New starting point',\n 'newEndPoint': 'New ending point',\n 'deleteEdge': 'Delete edge',\n 'importJobTitle': \"Select jobs\",\n 'wfTimeExpressionPLH': 'Cron expression for CRON or empty for API',\n 'import': 'Import',\n 'ntfClickNeedDeleteNode': 'Please click on the node you want to delete.',\n 'ntfClickStartPoint': 'Please click on the start node',\n 'ntfClickTargetPoint': 'Please click on the end node',\n 'ntfClickDeleteEdge': 'Please click on the edge you want to remove.',\n 'ntfAddStartPointFirst': 'Please add the starting point first!',\n 'ntfInvalidEdge': 'Illegal operation (same origin and destination)!',\n // workflowInstance\n 'wfTips': 'tips:Click on a node to view details of the job instance',\n 'ntfClickNoInstanceNode': 'No instances have been generated, and details cannot be viewed!',\n 'wfInitParams': 'InitParams',\n // 容器\n 'newContainer': 'New container',\n 'containerType': 'Type',\n 'containerGitURL': 'Git URL',\n 'branchName': 'Branch',\n 'username': 'Username',\n 'oldPassword': 'Old password',\n 'password': 'Password',\n 'containerId': 'ID',\n 'containerName': 'Name',\n 'containerVersion': 'Version',\n 'deployTime': 'Deployed time',\n 'deploy': 'Deploy',\n 'deployedWorkerList': 'Worker list',\n 'uploadTips': 'Drag and drop or click on the file to upload it automatically',\n // 任务实例状态\n 'waitingDispatch': 'Waiting dispatch',\n 'waitingWorkerReceive': 'Waiting receive',\n 'running': 'Running',\n 'stopped': 'Stopped',\n 'canceled': 'Canceled',\n 'wfWaiting': 'Waiting',\n 'waitingUpstream': 'Waiting upstream',\n // 新增的提示信息\n 'noSelect': 'Please select at least one data item',\n 'nodeName': 'Node name',\n 'nodeParams': 'Node parameter',\n 'enable': 'Enable',\n 'skipWhenFailed': 'Allow skips when failed',\n 'fullScreen': 'Full Screen',\n 'zoomIn': 'Zoom In',\n 'zoomOut': 'Zoom out',\n 'autoFit': 'Auto Fit',\n 'markerSuccess': 'Marked Success',\n 'restart': 'restart',\n 'wfContext': 'Context',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': 'Copy'\n }\n}, element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_1___default.a);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (en);\n\n//# sourceURL=webpack:///./src/i18n/langs/en.js?"); /***/ }), From 584b20ae9b9e399b0ccec15cd571390152ea205a Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 5 Apr 2021 14:47:01 +0800 Subject: [PATCH 11/13] chore: use project.parent.version to manage powerjob-server's version --- powerjob-server/pom.xml | 19 ++++++------------- .../powerjob-server-common/pom.xml | 2 +- powerjob-server/powerjob-server-core/pom.xml | 2 +- .../powerjob-server-extension/pom.xml | 2 +- .../powerjob-server-migrate/pom.xml | 2 +- .../powerjob-server-persistence/pom.xml | 2 +- .../powerjob-server-remote/pom.xml | 2 +- .../powerjob-server-starter/pom.xml | 2 +- 8 files changed, 13 insertions(+), 20 deletions(-) diff --git a/powerjob-server/pom.xml b/powerjob-server/pom.xml index e443d590..ba3f4275 100644 --- a/powerjob-server/pom.xml +++ b/powerjob-server/pom.xml @@ -47,13 +47,6 @@ true - - 1.0.0 - 1.0.0 - 1.0.0 - 1.0.0 - 1.0.0 - 1.0.0 @@ -61,32 +54,32 @@ tech.powerjob powerjob-server-common - ${powerjob-server-common.version} + ${project.version} tech.powerjob powerjob-server-extension - ${powerjob-server-extension.version} + ${project.version} tech.powerjob powerjob-server-remote - ${powerjob-server-remote.version} + ${project.version} tech.powerjob powerjob-server-persistence - ${powerjob-server-persistence.version} + ${project.version} tech.powerjob powerjob-server-core - ${powerjob-server-core.version} + ${project.version} tech.powerjob powerjob-server-migrate - ${powerjob-server-migrate.version} + ${project.version} diff --git a/powerjob-server/powerjob-server-common/pom.xml b/powerjob-server/powerjob-server-common/pom.xml index e47070d5..ce0df235 100644 --- a/powerjob-server/powerjob-server-common/pom.xml +++ b/powerjob-server/powerjob-server-common/pom.xml @@ -11,7 +11,7 @@ 4.0.0 powerjob-server-common - 1.0.0 + ${project.parent.version} 8 diff --git a/powerjob-server/powerjob-server-core/pom.xml b/powerjob-server/powerjob-server-core/pom.xml index 230d1a44..d3808525 100644 --- a/powerjob-server/powerjob-server-core/pom.xml +++ b/powerjob-server/powerjob-server-core/pom.xml @@ -11,7 +11,7 @@ 4.0.0 powerjob-server-core - 1.0.0 + ${project.parent.version} 8 diff --git a/powerjob-server/powerjob-server-extension/pom.xml b/powerjob-server/powerjob-server-extension/pom.xml index d08385ec..f8402cda 100644 --- a/powerjob-server/powerjob-server-extension/pom.xml +++ b/powerjob-server/powerjob-server-extension/pom.xml @@ -11,7 +11,7 @@ 4.0.0 powerjob-server-extension - 1.0.0 + ${project.parent.version} 8 diff --git a/powerjob-server/powerjob-server-migrate/pom.xml b/powerjob-server/powerjob-server-migrate/pom.xml index 30faa6de..1d6666b7 100644 --- a/powerjob-server/powerjob-server-migrate/pom.xml +++ b/powerjob-server/powerjob-server-migrate/pom.xml @@ -11,7 +11,7 @@ 4.0.0 powerjob-server-migrate - 1.0.0 + ${project.parent.version} 8 diff --git a/powerjob-server/powerjob-server-persistence/pom.xml b/powerjob-server/powerjob-server-persistence/pom.xml index 6a6dd646..c583fcc1 100644 --- a/powerjob-server/powerjob-server-persistence/pom.xml +++ b/powerjob-server/powerjob-server-persistence/pom.xml @@ -11,7 +11,7 @@ 4.0.0 powerjob-server-persistence - 1.0.0 + ${project.parent.version} 8 diff --git a/powerjob-server/powerjob-server-remote/pom.xml b/powerjob-server/powerjob-server-remote/pom.xml index d28473f2..e7243254 100644 --- a/powerjob-server/powerjob-server-remote/pom.xml +++ b/powerjob-server/powerjob-server-remote/pom.xml @@ -11,7 +11,7 @@ 4.0.0 powerjob-server-remote - 1.0.0 + ${project.parent.version} 8 diff --git a/powerjob-server/powerjob-server-starter/pom.xml b/powerjob-server/powerjob-server-starter/pom.xml index 8b9fd0a4..b10c1827 100644 --- a/powerjob-server/powerjob-server-starter/pom.xml +++ b/powerjob-server/powerjob-server-starter/pom.xml @@ -11,7 +11,7 @@ 4.0.0 powerjob-server-starter - 1.0.0 + ${project.parent.version} 8 From 7a471a39179aecb30ac031b08f16e76948de281b Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 5 Apr 2021 15:01:00 +0800 Subject: [PATCH 12/13] chore: change version to 4.0.1 --- powerjob-client/pom.xml | 4 ++-- powerjob-common/pom.xml | 2 +- powerjob-server/pom.xml | 4 ++-- powerjob-server/powerjob-server-common/pom.xml | 2 +- powerjob-server/powerjob-server-core/pom.xml | 2 +- powerjob-server/powerjob-server-extension/pom.xml | 2 +- powerjob-server/powerjob-server-migrate/pom.xml | 2 +- powerjob-server/powerjob-server-persistence/pom.xml | 2 +- powerjob-server/powerjob-server-remote/pom.xml | 2 +- powerjob-server/powerjob-server-starter/pom.xml | 2 +- powerjob-worker-agent/pom.xml | 4 ++-- powerjob-worker-samples/pom.xml | 4 ++-- powerjob-worker-spring-boot-starter/pom.xml | 4 ++-- powerjob-worker/pom.xml | 4 ++-- 14 files changed, 20 insertions(+), 20 deletions(-) diff --git a/powerjob-client/pom.xml b/powerjob-client/pom.xml index 0c8e431a..9acdfb01 100644 --- a/powerjob-client/pom.xml +++ b/powerjob-client/pom.xml @@ -10,13 +10,13 @@ 4.0.0 powerjob-client - 4.0.0 + 4.0.1 jar 5.6.1 1.2.68 - 4.0.0 + 4.0.1 3.2.4 diff --git a/powerjob-common/pom.xml b/powerjob-common/pom.xml index 0c2db1eb..b0cc98dc 100644 --- a/powerjob-common/pom.xml +++ b/powerjob-common/pom.xml @@ -10,7 +10,7 @@ 4.0.0 powerjob-common - 4.0.0 + 4.0.1 jar diff --git a/powerjob-server/pom.xml b/powerjob-server/pom.xml index ba3f4275..57d5ef75 100644 --- a/powerjob-server/pom.xml +++ b/powerjob-server/pom.xml @@ -10,7 +10,7 @@ 4.0.0 powerjob-server - 4.0.0 + 4.0.1 pom @@ -27,7 +27,7 @@ 2.9.2 2.3.4.RELEASE - 4.0.0 + 4.0.1 8.0.19 19.7.0.0 diff --git a/powerjob-server/powerjob-server-common/pom.xml b/powerjob-server/powerjob-server-common/pom.xml index ce0df235..76aa52d7 100644 --- a/powerjob-server/powerjob-server-common/pom.xml +++ b/powerjob-server/powerjob-server-common/pom.xml @@ -5,7 +5,7 @@ powerjob-server tech.powerjob - 4.0.0 + 4.0.1 ../pom.xml 4.0.0 diff --git a/powerjob-server/powerjob-server-core/pom.xml b/powerjob-server/powerjob-server-core/pom.xml index d3808525..c9c53d74 100644 --- a/powerjob-server/powerjob-server-core/pom.xml +++ b/powerjob-server/powerjob-server-core/pom.xml @@ -5,7 +5,7 @@ powerjob-server tech.powerjob - 4.0.0 + 4.0.1 ../pom.xml 4.0.0 diff --git a/powerjob-server/powerjob-server-extension/pom.xml b/powerjob-server/powerjob-server-extension/pom.xml index f8402cda..7095d1e0 100644 --- a/powerjob-server/powerjob-server-extension/pom.xml +++ b/powerjob-server/powerjob-server-extension/pom.xml @@ -5,7 +5,7 @@ powerjob-server tech.powerjob - 4.0.0 + 4.0.1 ../pom.xml 4.0.0 diff --git a/powerjob-server/powerjob-server-migrate/pom.xml b/powerjob-server/powerjob-server-migrate/pom.xml index 1d6666b7..e99b1710 100644 --- a/powerjob-server/powerjob-server-migrate/pom.xml +++ b/powerjob-server/powerjob-server-migrate/pom.xml @@ -5,7 +5,7 @@ powerjob-server tech.powerjob - 4.0.0 + 4.0.1 ../pom.xml 4.0.0 diff --git a/powerjob-server/powerjob-server-persistence/pom.xml b/powerjob-server/powerjob-server-persistence/pom.xml index c583fcc1..274c6a0c 100644 --- a/powerjob-server/powerjob-server-persistence/pom.xml +++ b/powerjob-server/powerjob-server-persistence/pom.xml @@ -5,7 +5,7 @@ powerjob-server tech.powerjob - 4.0.0 + 4.0.1 ../pom.xml 4.0.0 diff --git a/powerjob-server/powerjob-server-remote/pom.xml b/powerjob-server/powerjob-server-remote/pom.xml index e7243254..e6192e9f 100644 --- a/powerjob-server/powerjob-server-remote/pom.xml +++ b/powerjob-server/powerjob-server-remote/pom.xml @@ -5,7 +5,7 @@ powerjob-server tech.powerjob - 4.0.0 + 4.0.1 ../pom.xml 4.0.0 diff --git a/powerjob-server/powerjob-server-starter/pom.xml b/powerjob-server/powerjob-server-starter/pom.xml index b10c1827..fad4206c 100644 --- a/powerjob-server/powerjob-server-starter/pom.xml +++ b/powerjob-server/powerjob-server-starter/pom.xml @@ -5,7 +5,7 @@ powerjob-server tech.powerjob - 4.0.0 + 4.0.1 ../pom.xml 4.0.0 diff --git a/powerjob-worker-agent/pom.xml b/powerjob-worker-agent/pom.xml index d56bdae9..6e551f9c 100644 --- a/powerjob-worker-agent/pom.xml +++ b/powerjob-worker-agent/pom.xml @@ -10,12 +10,12 @@ 4.0.0 powerjob-worker-agent - 4.0.0 + 4.0.1 jar - 4.0.0 + 4.0.1 1.2.3 4.3.2 diff --git a/powerjob-worker-samples/pom.xml b/powerjob-worker-samples/pom.xml index afe99262..af6f94c3 100644 --- a/powerjob-worker-samples/pom.xml +++ b/powerjob-worker-samples/pom.xml @@ -10,11 +10,11 @@ 4.0.0 powerjob-worker-samples - 4.0.0 + 4.0.1 2.3.4.RELEASE - 4.0.0 + 4.0.1 1.2.68 1.1.0 diff --git a/powerjob-worker-spring-boot-starter/pom.xml b/powerjob-worker-spring-boot-starter/pom.xml index 8097e1b9..5bc95f91 100644 --- a/powerjob-worker-spring-boot-starter/pom.xml +++ b/powerjob-worker-spring-boot-starter/pom.xml @@ -10,11 +10,11 @@ 4.0.0 powerjob-worker-spring-boot-starter - 4.0.0 + 4.0.1 jar - 4.0.0 + 4.0.1 2.3.4.RELEASE diff --git a/powerjob-worker/pom.xml b/powerjob-worker/pom.xml index 17d0d52b..4af86661 100644 --- a/powerjob-worker/pom.xml +++ b/powerjob-worker/pom.xml @@ -10,12 +10,12 @@ 4.0.0 powerjob-worker - 4.0.0 + 4.0.1 jar 5.2.4.RELEASE - 4.0.0 + 4.0.1 1.4.200 3.4.2 5.6.1 From cbcd5dcca712d8867eec02fbd87b6bb57b523b5d Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 5 Apr 2021 15:08:59 +0800 Subject: [PATCH 13/13] refactor: update guava version for security #CVE-2020-8908 --- powerjob-common/pom.xml | 2 +- powerjob-official-processors/pom.xml | 2 +- powerjob-server/pom.xml | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/powerjob-common/pom.xml b/powerjob-common/pom.xml index b0cc98dc..d4651457 100644 --- a/powerjob-common/pom.xml +++ b/powerjob-common/pom.xml @@ -17,7 +17,7 @@ 1.7.30 3.10 2.6 - 29.0-jre + 30.1.1-jre 3.14.9 2.6.12 5.0.4 diff --git a/powerjob-official-processors/pom.xml b/powerjob-official-processors/pom.xml index 8378f60b..a20a2ea4 100644 --- a/powerjob-official-processors/pom.xml +++ b/powerjob-official-processors/pom.xml @@ -28,7 +28,7 @@ 1.2.68 3.14.9 - 29.0-jre + 30.1.1-jre 2.6 3.10 diff --git a/powerjob-server/pom.xml b/powerjob-server/pom.xml index 57d5ef75..7d2f4a1b 100644 --- a/powerjob-server/pom.xml +++ b/powerjob-server/pom.xml @@ -81,6 +81,11 @@ powerjob-server-migrate ${project.version} + + tech.powerjob + powerjob-server-starter + ${project.version} +