【spring boot结合rabbit mq 到点执行,可精确到秒】
创建队列枚举
public enum QueueEnum {
TEST(1,"test","队列频道"),
DELAY_TEST(2,"delay_test","延迟延迟频道"),
;
private Integer code;
private String channel;
private String desc;
QueueEnum(Integer code, String channel, String desc) {
this.code = code;
this.channel = channel;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getChannel() {
return channel;
}
public void setChannel(String channel) {
this.channel = channel;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static String findChannelByCode(Integer code) {
QueueEnum[] queueEnums = QueueEnum.values();
for (QueueEnum queueEnum : queueEnums) {
if (code == queueEnum.getCode()) {
return queueEnum.getChannel();
}
}
return "";
}
}
创建自定义的队列消息pojo
import java.io.Serializable;
import java.time.LocalDate;
public class QueueMessage implements Serializable {
private static final long serialVersionUID = 1L;
private QueueEnum queueEnum;
private String activityId;
private String taskDate;
private String msgId;
public String getActivityId() {
return activityId;
}
public String getTaskDate() {
return taskDate==null? LocalDate.now().toString():taskDate;
}
public void setQueueEnum(QueueEnum queueEnum) {
this.queueEnum = queueEnum;
}
public void setActivityId(String activityId) {
this.activityId = activityId;
}
public void setTaskDate(String taskDate) {
this.taskDate = taskDate;
}
public String getMsgId() {
return msgId;
}
public void setMsgId(String msgId) {
this.msgId = msgId;
}
public QueueEnum getQueueEnum() {
return queueEnum;
}
public QueueMessage() {
}
public QueueMessage(QueueEnum queueEnum, String activityId) {
this.queueEnum = queueEnum;
this.activityId = activityId;
}
public QueueMessage(QueueEnum queueEnum, String activityId,String msgId) {
this.queueEnum = queueEnum;
this.activityId = activityId;
this.msgId=msgId;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("QueueMessage{");
sb.append("queueEnum=").append(queueEnum);
sb.append(", activityId='").append(activityId).append('\'');
sb.append(", taskDate='").append(taskDate).append('\'');
sb.append(", mgsId='").append(msgId).append('\'');
sb.append('}')