Skip to content

Commit 635bbb1

Browse files
committedNov 6, 2023
repackage
1 parent fc8b6ac commit 635bbb1

File tree

9 files changed

+30
-29
lines changed

9 files changed

+30
-29
lines changed
 

‎README.md

+14-13
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,20 @@ disjob # 主项目①
6060
- 支持DAG工作流,可把jobHandler配置为复杂的DAG表达式,如:A->B,C,(D->E)->D,F->G
6161
- 提供Web管理后台,通过界面进行作业配置,任务监控等
6262

63+
## Comparison
64+
65+
| **Feature** | **Quartz** | **Elastic-Job** | **Xxl-Job** | **Disjob** |
66+
| ------------ | ---------- |-----------------|-----------------|-------------------------------|
67+
| 时间类型 | Cron | Cron | Cron | Cron、指定时间、固定频率、固定延时 |
68+
| 任务编排 | 不支持 | 不支持 | 任务依赖 | DAG表达式、任务依赖 |
69+
| 任务分片 | 不支持 | 静态分片 | 广播 | 广播、动态分片 |
70+
| 停止及恢复 | 不支持 | 不支持 | 终止运行中的任务 | 暂停执行中的任务、恢复已暂停的任务 |
71+
| 保存执行快照 | 不支持 | 不支持 | 不支持 | 支持 |
72+
| 失败重试 | 不支持 | 支持 | 支持 | 支持 |
73+
| 后台管理 | 不支持 | 支持 | 支持 | 支持 |
74+
| 监控告警 | 不支持 | 邮件 | 邮件 | 暂不支持 |
75+
| 查看执行日志 | 不支持 | 支持 | 支持 | 暂不支持 |
76+
6377
## [Download From Maven Central](https://central.sonatype.com/namespace/cn.ponfee)
6478

6579
```xml
@@ -232,19 +246,6 @@ Worker接收到子任务后,会提交到框架自定义的线程池中执行
232246

233247
![范例流程图](docs/images/example-flow.png)
234248

235-
## Comparison
236-
| **Feature** | **Quartz** | **Elastic-Job** | **Xxl-Job** | **Disjob** |
237-
| ------------ | ---------- |-----------------|-----------------|-------------------------------|
238-
| 时间类型 | Cron | Cron | Cron | Cron、指定时间、固定频率、固定延时 |
239-
| 任务编排 | 不支持 | 不支持 | 任务依赖 | DAG表达式、任务依赖 |
240-
| 任务分片 | 不支持 | 静态分片 | 广播 | 广播、动态分片 |
241-
| 保存执行快照 | 不支持 | 不支持 | 不支持 | 支持 |
242-
| 停止及恢复 | 不支持 | 不支持 | 终止运行中的任务 | 暂停执行中的任务、恢复已暂停的任务 |
243-
| 失败重试 | 不支持 | 支持 | 支持 | 支持 |
244-
| 后台管理 | 不支持 | 支持 | 支持 | 支持 |
245-
| 监控告警 | 不支持 | 邮件 | 邮件 | 暂不支持 |
246-
| 查看执行日志 | 不支持 | 支持 | 支持 | 暂不支持 |
247-
248249
## Contributing
249250

250251
如有发现bug、更优的实现方案、新特性等,可提交PR或新建[Issues](../../issues)。

‎disjob-common/src/main/java/cn/ponfee/disjob/common/concurrent/AbstractHeartbeatThread.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public abstract class AbstractHeartbeatThread extends Thread implements Closeable {
2525

2626
private static final long MILLIS_PER_SECOND = 1000;
27-
private static final int MAX_PROCESSED_COUNT = 997;
27+
private static final int MAX_PROCESSED_COUNT = 47;
2828

2929
protected final Logger log = LoggerFactory.getLogger(getClass());
3030

@@ -86,7 +86,9 @@ public final void run() {
8686
// gap period milliseconds(with fixed delay)
8787
doSleep(heartbeatPeriodMs);
8888
} else if (++processedCount > MAX_PROCESSED_COUNT) {
89-
doSleep(MILLIS_PER_SECOND - (end % MILLIS_PER_SECOND));
89+
processedCount = 0;
90+
long sleepTime = end % MILLIS_PER_SECOND;
91+
doSleep(sleepTime != 0 ? sleepTime : MILLIS_PER_SECOND);
9092
}
9193
}
9294
} catch (InterruptedException e) {

‎disjob-common/src/main/java/cn/ponfee/disjob/common/lock/DoInDatabaseLocked.java

+6-9
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,13 @@ public final class DoInDatabaseLocked implements DoInLocked {
2929
private static final String TABLE_NAME = "distributed_lock";
3030

3131
private static final String CREATE_TABLE_DDL =
32-
"CREATE TABLE IF NOT EXISTS `" + TABLE_NAME + "` ( \n" +
33-
" `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'auto increment id', \n" +
34-
" `name` VARCHAR(50) NOT NULL COMMENT 'lock name', \n" +
35-
" PRIMARY KEY (`id`), \n" +
36-
" UNIQUE KEY `uk_name` (`name`) \n" +
37-
") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='database lock'; \n" ;
32+
"CREATE TABLE IF NOT EXISTS `" + TABLE_NAME + "` ( \n" +
33+
" `name` VARCHAR(50) PRIMARY KEY NOT NULL COMMENT 'lock name' \n" +
34+
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='database lock'; \n" ;
3835

3936
private static final String INSERT_SQL = "INSERT INTO " + TABLE_NAME + " (name) VALUES (?)";
4037

41-
private static final String GET_SQL = "SELECT id FROM " + TABLE_NAME + " WHERE name=?";
38+
private static final String GET_SQL = "SELECT 1 FROM " + TABLE_NAME + " WHERE name=?";
4239

4340
private static final String LOCK_SQL = GET_SQL + " FOR UPDATE";
4441

@@ -89,8 +86,8 @@ private void initializeLockIfNecessary() {
8986
Objects.requireNonNull(getLockId());
9087
}
9188

92-
private Long getLockId() {
93-
return jdbcTemplateWrapper.get(GET_SQL, JdbcTemplateWrapper.LONG_ROW_MAPPER, lockName);
89+
private Integer getLockId() {
90+
return jdbcTemplateWrapper.get(GET_SQL, JdbcTemplateWrapper.INT_ROW_MAPPER, lockName);
9491
}
9592

9693
}

‎disjob-common/src/main/java/cn/ponfee/disjob/common/spring/JdbcTemplateWrapper.java

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public final class JdbcTemplateWrapper {
4444
public static final int AFFECTED_ONE_ROW = 1;
4545
public static final RowMapper<String> STRING_ROW_MAPPER = new SingleColumnRowMapper<>(String.class);
4646
public static final RowMapper<Long> LONG_ROW_MAPPER = new SingleColumnRowMapper<>(Long.class);
47+
public static final RowMapper<Integer> INT_ROW_MAPPER = new SingleColumnRowMapper<>(Integer.class);
4748
private static final Set<String> EXISTS_TABLE = ConcurrentHashMap.newKeySet();
4849

4950
private final JdbcTemplate jdbcTemplate;

‎disjob-registry/disjob-registry-api/src/main/java/cn/ponfee/disjob/registry/ServerRegistry.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public final ServerRole discoveryRole() {
110110
return discoveryRole;
111111
}
112112

113-
// -------------------------------------------------------------------------------------private method & class definitions
113+
// -------------------------------------------------------------------------------------private method
114114

115115
private static String prune(String namespace, char separator) {
116116
if (StringUtils.isBlank(namespace)) {

‎disjob-core/src/main/java/cn/ponfee/disjob/core/dag/WorkflowGraph.java ‎disjob-supervisor/src/main/java/cn/ponfee/disjob/supervisor/dag/WorkflowGraph.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
** \/ \/ \/ **
77
\* */
88

9-
package cn.ponfee.disjob.core.dag;
9+
package cn.ponfee.disjob.supervisor.dag;
1010

1111
import cn.ponfee.disjob.common.dag.DAGEdge;
1212
import cn.ponfee.disjob.common.dag.DAGNode;

‎disjob-supervisor/src/main/java/cn/ponfee/disjob/supervisor/instance/WorkflowInstanceCreator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
import cn.ponfee.disjob.common.date.Dates;
1515
import cn.ponfee.disjob.common.tuple.Tuple2;
1616
import cn.ponfee.disjob.common.util.Jsons;
17-
import cn.ponfee.disjob.core.dag.WorkflowGraph;
1817
import cn.ponfee.disjob.core.enums.RunState;
1918
import cn.ponfee.disjob.core.enums.RunType;
2019
import cn.ponfee.disjob.core.exception.JobCheckedException;
2120
import cn.ponfee.disjob.core.model.*;
2221
import cn.ponfee.disjob.core.param.JobHandlerParam;
22+
import cn.ponfee.disjob.supervisor.dag.WorkflowGraph;
2323
import cn.ponfee.disjob.supervisor.service.DistributedJobManager;
2424
import lombok.Getter;
2525
import org.apache.commons.lang3.mutable.MutableInt;

‎disjob-supervisor/src/main/java/cn/ponfee/disjob/supervisor/service/DistributedJobManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020
import cn.ponfee.disjob.common.util.Jsons;
2121
import cn.ponfee.disjob.common.util.Strings;
2222
import cn.ponfee.disjob.core.base.Worker;
23-
import cn.ponfee.disjob.core.dag.WorkflowGraph;
2423
import cn.ponfee.disjob.core.enums.*;
2524
import cn.ponfee.disjob.core.exception.JobCheckedException;
2625
import cn.ponfee.disjob.core.model.*;
2726
import cn.ponfee.disjob.core.param.*;
2827
import cn.ponfee.disjob.dispatch.TaskDispatcher;
2928
import cn.ponfee.disjob.registry.SupervisorRegistry;
3029
import cn.ponfee.disjob.supervisor.base.WorkerCoreRpcClient;
30+
import cn.ponfee.disjob.supervisor.dag.WorkflowGraph;
3131
import cn.ponfee.disjob.supervisor.dao.mapper.*;
3232
import cn.ponfee.disjob.supervisor.instance.NormalInstanceCreator;
3333
import cn.ponfee.disjob.supervisor.instance.TriggerInstance;

‎disjob-supervisor/src/main/java/cn/ponfee/disjob/supervisor/service/DistributedJobQuerier.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
import cn.ponfee.disjob.core.api.supervisor.request.SchedJobPageRequest;
1818
import cn.ponfee.disjob.core.api.supervisor.response.SchedInstanceResponse;
1919
import cn.ponfee.disjob.core.api.supervisor.response.SchedJobResponse;
20-
import cn.ponfee.disjob.core.dag.WorkflowGraph;
2120
import cn.ponfee.disjob.core.enums.RunState;
2221
import cn.ponfee.disjob.core.handle.execution.WorkflowPredecessorNode;
2322
import cn.ponfee.disjob.core.model.SchedInstance;
2423
import cn.ponfee.disjob.core.model.SchedJob;
2524
import cn.ponfee.disjob.core.model.SchedTask;
2625
import cn.ponfee.disjob.core.model.SchedWorkflow;
26+
import cn.ponfee.disjob.supervisor.dag.WorkflowGraph;
2727
import cn.ponfee.disjob.supervisor.dao.mapper.SchedInstanceMapper;
2828
import cn.ponfee.disjob.supervisor.dao.mapper.SchedJobMapper;
2929
import cn.ponfee.disjob.supervisor.dao.mapper.SchedTaskMapper;

0 commit comments

Comments
 (0)
Please sign in to comment.