创建延时队列
queue.file_delay_destroy
x-dead-letter-exchange:	exchange.file_delay_destroy
x-message-ttl:	259200000
259200000为3天,1000为1秒
 

创建普通队列
queue.file_destroy
 
创建普通交换机
type选择fanout
 
交换机绑定普通队列
(图中已经绑定,红框为绑定过程)
 
普通队列绑定交换机
(图中已经绑定,红框为绑定过程)
 
普通队列消费端
延时队列时间到之后,将消息发送给queue.file_destroy,执行删除文件操作
@Component
public class FileDestroyMessageReceiver implements IMessageReceiver {
  Log log = LogFactory.getLog(FileDestroyMessageReceiver.class);
  @RabbitListener(queuesToDeclare = {
      @Queue(name = "queue.file_destroy")
  })
  @RabbitHandler
  @Override
  public void onMessageReceived(String mqMessageString) {
    JsonNode jsonNode = JsonConverter.jsonString2JsonNode(mqMessageString);
    JsonNode msg = jsonNode.findValue("msg");
    String filePath = msg.findValue("filePath").asText();
    if (filePath.contains("/data/static/dataSharingStatic/weatherlive/colorFigure/png/610000/610000")) {
      File file = new File(filePath);
      if (file.exists()) {
        FileHelper.deleteFile(file);
      }
    } else {
      log.warn("有人想删除设定之外的文件");
      log.warn(filePath);
    }
  }
}
                

















