mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
add HttpMessageReporter
This commit is contained in:
parent
c8adf01b54
commit
ae7b54e6bb
@ -61,10 +61,23 @@ public class AuditManager {
|
||||
return messageCollector;
|
||||
}
|
||||
|
||||
|
||||
public static void setMessageReporter(MessageReporter messageReporter){
|
||||
MessageCollector newMessageCollector = new ScheduledMessageCollector(10,messageReporter);
|
||||
setMessageCollector(newMessageCollector);
|
||||
}
|
||||
|
||||
public static void setMessageCollector(MessageCollector messageCollector) {
|
||||
releaseScheduledMessageCollector();
|
||||
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 {
|
||||
AuditMessage auditMessage = messageCreator.create();
|
||||
if (auditMessage == null) {
|
||||
|
||||
@ -48,6 +48,12 @@ public class ScheduledMessageCollector implements MessageCollector, Runnable {
|
||||
public ScheduledMessageCollector(long period, MessageReporter messageSender) {
|
||||
this.period = period;
|
||||
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);
|
||||
}
|
||||
|
||||
public void release() {
|
||||
scheduler.shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ public class HttpMessageReporter implements MessageReporter {
|
||||
HttpUtil.post(url, jsonFormatter.toJSONString(messages));
|
||||
}
|
||||
|
||||
interface JSONFormatter {
|
||||
public interface JSONFormatter {
|
||||
String toJSONString(Object object);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user