| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package com.cyksj.common.task;
- import java.util.concurrent.Delayed;
- import java.util.concurrent.TimeUnit;
- /**
- * @author chan
- * @className BaseTaskBeanDelayed
- * @description 延时队列
- * @date 2020-05-21 16:35
- */
- public abstract class BaseTaskBeanDelayed implements Delayed, Runnable {
- /**
- * 任务Id
- **/
- private String taskId;
- /**
- * 任务名称
- **/
- private String taskName;
- /**
- * 延迟时间
- **/
- private long expire;
- /**
- * 任务
- **/
- private Runnable task;
- /**
- * 优先队列里面优先级规则 TimeUnit .MILLISECONDS 获取单位 为毫秒的时间戳
- **/
- @Override
- public int compareTo(Delayed o) {
- return (int) (this.getDelay(TimeUnit.MILLISECONDS) - o.getDelay(TimeUnit.MILLISECONDS));
- }
- /**
- * 剩余时间=到期时间-当前时间 convert: 将给定单元的时间段转换到此单元。
- **/
- @Override
- public long getDelay(TimeUnit unit) {
- return unit.convert(this.expire - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
- }
- public String getTaskId() {
- return taskId;
- }
- public void setTaskId(String taskId) {
- this.taskId = taskId;
- }
- public String getTaskName() {
- return taskName;
- }
- public void setTaskName(String taskName) {
- this.taskName = taskName;
- }
- public Runnable getTask() {
- return task;
- }
- public void setTask(Runnable task) {
- this.task = task;
- }
- public long getExpire() {
- return expire;
- }
- public void setExpire(long expire) {
- this.expire = expire;
- }
- }
|