mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 09:08:24 +08:00
add HttpMessageReporter
This commit is contained in:
parent
c8adf01b54
commit
ae7b54e6bb
@ -61,10 +61,23 @@ public class AuditManager {
|
|||||||
return messageCollector;
|
return messageCollector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void setMessageReporter(MessageReporter messageReporter){
|
||||||
|
MessageCollector newMessageCollector = new ScheduledMessageCollector(10,messageReporter);
|
||||||
|
setMessageCollector(newMessageCollector);
|
||||||
|
}
|
||||||
|
|
||||||
public static void setMessageCollector(MessageCollector messageCollector) {
|
public static void setMessageCollector(MessageCollector messageCollector) {
|
||||||
|
releaseScheduledMessageCollector();
|
||||||
AuditManager.messageCollector = messageCollector;
|
AuditManager.messageCollector = messageCollector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void releaseScheduledMessageCollector() {
|
||||||
|
if (messageCollector instanceof ScheduledMessageCollector){
|
||||||
|
((ScheduledMessageCollector) messageCollector).release();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static <T> T startAudit(AuditRunnable<T> supplier, BoundSql boundSql) throws SQLException {
|
public static <T> T startAudit(AuditRunnable<T> supplier, BoundSql boundSql) throws SQLException {
|
||||||
AuditMessage auditMessage = messageCreator.create();
|
AuditMessage auditMessage = messageCreator.create();
|
||||||
if (auditMessage == null) {
|
if (auditMessage == null) {
|
||||||
|
|||||||
@ -48,6 +48,12 @@ public class ScheduledMessageCollector implements MessageCollector, Runnable {
|
|||||||
public ScheduledMessageCollector(long period, MessageReporter messageSender) {
|
public ScheduledMessageCollector(long period, MessageReporter messageSender) {
|
||||||
this.period = period;
|
this.period = period;
|
||||||
this.messageSender = messageSender;
|
this.messageSender = messageSender;
|
||||||
|
scheduler = Executors.newSingleThreadScheduledExecutor(runnable -> {
|
||||||
|
Thread thread = new Thread(runnable, "ScheduledMessageCollector");
|
||||||
|
thread.setDaemon(true);
|
||||||
|
return thread;
|
||||||
|
});
|
||||||
|
scheduler.scheduleAtFixedRate(this, period, period, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -80,4 +86,8 @@ public class ScheduledMessageCollector implements MessageCollector, Runnable {
|
|||||||
|
|
||||||
messageSender.sendMessages(sendMessages);
|
messageSender.sendMessages(sendMessages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void release() {
|
||||||
|
scheduler.shutdown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,7 +40,7 @@ public class HttpMessageReporter implements MessageReporter {
|
|||||||
HttpUtil.post(url, jsonFormatter.toJSONString(messages));
|
HttpUtil.post(url, jsonFormatter.toJSONString(messages));
|
||||||
}
|
}
|
||||||
|
|
||||||
interface JSONFormatter {
|
public interface JSONFormatter {
|
||||||
String toJSONString(Object object);
|
String toJSONString(Object object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user