# delay-queue **Repository Path**: GREADChengXuYuan/delay-queue ## Basic Information - **Project Name**: delay-queue - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-12-16 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 启动服务方式 ## 1. 需要jdk17的环境 ## 2. 启动服务 ``` ## env: 环境参数,一个服务支持多个环境,类似命名空间的概念 ## serverPort: http服务名,用来接收其他服务的接口调用 ## host: redis地址 ## port: redis端口 ## pwd:redis密码 ## database: 数据库名 java -jar -Denv=test -DserverPort=9001 -Dhost=192.168.0.19 -Dport=6379 -Dpwd=test -Ddatabase=0 delay-server.jar ``` ## 客户端对接 1. 把这个对象放入自身服务:DelayMsg.class ``` import java.util.Date; import java.util.Map; public class DelayMsg { //来源服务名 每个服务需要唯一 客户端参数 private String fromSever; //消息id 客户端唯一id 需要唯一 客户端参数 private String msgId; //时间名称 客户端参数 private String eventName; //消息数据 客户端参数 private Object msg; //延迟执行的毫秒数 客户端参数 private Long delayMills; //回调地址 客户端参数 private String backUrl; //执行时间 private long executeTime; //提交时间 private Date submitDate; // 重试次数 private int retryCount; // 任务状态 private int status; //由服务id+客户端唯一id拼接而成 private String taskId; public String getFromSever() { return fromSever; } public void setFromSever(String fromSever) { this.fromSever = fromSever; } public String getMsgId() { return msgId; } public void setMsgId(String msgId) { this.msgId = msgId; } public String getEventName() { return eventName; } public void setEventName(String eventName) { this.eventName = eventName; } public Object getMsg() { return msg; } public void setMsg(Object msg) { this.msg = msg; } public Long getDelayMills() { return delayMills; } public void setDelayMills(Long delayMills) { this.delayMills = delayMills; } public String getBackUrl() { return backUrl; } public void setBackUrl(String backUrl) { this.backUrl = backUrl; } public long getExecuteTime() { return executeTime; } public void setExecuteTime(long executeTime) { this.executeTime = executeTime; } public Date getSubmitDate() { return submitDate; } public void setSubmitDate(Date submitDate) { this.submitDate = submitDate; } public int getRetryCount() { return retryCount; } public void setRetryCount(int retryCount) { this.retryCount = retryCount; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getTaskId() { return taskId; } @Override public String toString() { return "DelayMsg{" + "fromSever='" + fromSever + '\'' + ", msgId='" + msgId + '\'' + ", eventName='" + eventName + '\'' + ", msg=" + msg + ", delayMills=" + delayMills + ", backUrl='" + backUrl + '\'' + ", executeTime=" + executeTime + ", submitDate=" + submitDate + ", retryCount=" + retryCount + ", status=" + status + '}'; } } ``` 2. 创建回调接口。延时到时间后会调用,