Package xyz.cofe.sql.stream
Class MessageReader
java.lang.Object
java.lang.Thread
xyz.cofe.sql.stream.MessageReader
- All Implemented Interfaces:
java.lang.Runnable
public class MessageReader
extends java.lang.Thread
Чтение сообщений из Statement warnings
- Author:
- Kamnev Georgiy
-
Nested Class Summary
-
Field Summary
Fields Modifier and Type Field Description protected java.util.function.Consumer<java.sql.SQLWarning>consumerprotected java.util.Set<java.sql.SQLWarning>readedprotected longsleepprotected java.util.logging.LevelsqlWarnLevelprotected longstartLagprotected java.sql.Statementstatementprotected java.lang.Objectsyncprotected longwaitForOpenprotected longwaitForOpenTimeout -
Constructor Summary
Constructors Constructor Description MessageReader(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer)КонструкторMessageReader(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer, int sleep)Конструктор -
Method Summary
Modifier and Type Method Description java.util.function.Consumer<java.sql.SQLWarning>getConsumer()longgetSleep()Указывает задержку для ожидания поступления нового сообщенияjava.util.logging.LevelgetSqlWarnLevel()Указывает уровень логирования сообщенийjava.sql.StatementgetStatement()java.lang.ObjectgetSync()voidreleaseStatement()Удаление ссылки на statementvoidrun()voidsetConsumer(java.util.function.Consumer<java.sql.SQLWarning> ncons)voidsetSleep(long sleep)Указывает задержку для ожидания поступления нового сообщенияvoidsetSqlWarnLevel(java.util.logging.Level sqlWarnLevel)Указывает уровень логирования сообщенийvoidsetStatement(java.sql.Statement st)voidterminate(long timeout, long sleep)Остановка выполнения.Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
Field Details
-
sync
protected final java.lang.Object sync -
statement
protected java.sql.Statement statement -
consumer
protected java.util.function.Consumer<java.sql.SQLWarning> consumer -
readed
protected final java.util.Set<java.sql.SQLWarning> readed -
sqlWarnLevel
protected java.util.logging.Level sqlWarnLevel -
sleep
protected long sleep -
startLag
protected long startLag -
waitForOpenTimeout
protected long waitForOpenTimeout -
waitForOpen
protected long waitForOpen
-
-
Constructor Details
-
MessageReader
public MessageReader(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer, int sleep)Конструктор- Parameters:
st- SQL Statement из которого будут прочитываться сообщенияconsumer- Приемник сообщенийsleep- задержка между приемами сообщений
-
MessageReader
public MessageReader(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer)Конструктор- Parameters:
st- SQL Statement из которого будут прочитываться сообщенияconsumer- Приемник сообщений
-
-
Method Details
-
getSync
public java.lang.Object getSync() -
getStatement
public java.sql.Statement getStatement() -
setStatement
public void setStatement(java.sql.Statement st) -
releaseStatement
public void releaseStatement()Удаление ссылки на statement -
getConsumer
public java.util.function.Consumer<java.sql.SQLWarning> getConsumer() -
setConsumer
public void setConsumer(java.util.function.Consumer<java.sql.SQLWarning> ncons) -
getSqlWarnLevel
public java.util.logging.Level getSqlWarnLevel()Указывает уровень логирования сообщений- Returns:
- уровень логирования - по умолчанию FINE
-
setSqlWarnLevel
public void setSqlWarnLevel(java.util.logging.Level sqlWarnLevel)Указывает уровень логирования сообщений- Parameters:
sqlWarnLevel- уровень логирования - по умолчанию FINE
-
getSleep
public long getSleep()Указывает задержку для ожидания поступления нового сообщения- Returns:
- задержка в мс
-
setSleep
public void setSleep(long sleep)Указывает задержку для ожидания поступления нового сообщения- Parameters:
sleep- задержка в мс
-
run
public void run()- Specified by:
runin interfacejava.lang.Runnable- Overrides:
runin classjava.lang.Thread
-
terminate
public void terminate(long timeout, long sleep)Остановка выполнения.Нельзя вызывать только в самом же треде.
- Parameters:
timeout- макс. время (мс) за которое должна произойти остановкаsleep- время (мс) паузы, при значении < 0 - передает управление другому потоку Thread.yield()
-