public interface PublishStrategy extends TransportStrategy
| 限定符和类型 | 方法和说明 |
|---|---|
void |
accqireToken()
publish消息时由于内存queue容量是有限的,需要获取一个许可
|
void |
accqireToken(int n)
publish消息时由于内存queue容量是有限的,需要获取n个许可
|
void |
fastFailed(SessionIdProvider sessionIdProvider)
发送任务时失败后,如何快速的失败
|
void |
finishPub(ByteBuffer buf,
SessionIdProvider sessionIdProvider)
一个发送任务被成功发送后需要处理的行为
|
int |
getCurrentTaskCount()
在tcp的双工模式下,可以并发的发送任务和接收信息,并发会消耗资源,使用本方法获取可并发处理的任务量
|
WriteTask |
getNextTask(LogIdGen idGen,
long messageId,
String sessionId,
String topicName)
生成下一个需要发送的任务,每一个任务可能需要发送单个、一批或者一包消息
|
boolean |
handlePubTimeout(SessionIdProvider sessionIdProvider)
监控当前是否有任务已经持续很久,可能超时
|
void |
handleShutDown(SessionIdProvider sessionIdProvider)
当Session关闭时如何处理未发送的消息
|
void |
releaseToken()
消息处理完后需要释放一个许可
|
void |
releaseToken(int n)
消息处理完后需要释放n个许可
|
void |
submitMessage(List<Message> msgList,
InternalFutrue futrue)
提交要发送的批量消息
|
void |
submitMessage(Message msg)
提交要发送的单个消息
|
applySocketConf, buildSimpleCommand, getProvidervoid submitMessage(Message msg)
msg - 消息对象void submitMessage(List<Message> msgList, InternalFutrue futrue)
msgList - 消息listfutrue - 内部futrue,用于触发任务结束事件WriteTask getNextTask(LogIdGen idGen, long messageId, String sessionId, String topicName)
idGen - id生成器messageId - 消息idsessionId - sessionidtopicName - bigpipe topic namevoid handleShutDown(SessionIdProvider sessionIdProvider)
sessionIdProvider - sessionIdProvidervoid finishPub(ByteBuffer buf, SessionIdProvider sessionIdProvider)
buf - 内容sessionIdProvider - SessionIdProvidervoid fastFailed(SessionIdProvider sessionIdProvider)
sessionIdProvider - SessionIdProvidervoid accqireToken()
throws InterruptedException
InterruptedException - 线程被打断void releaseToken()
void accqireToken(int n)
throws InterruptedException
n - 获取token的数量InterruptedException - 线程被打断异常void releaseToken(int n)
n - 许可的数量int getCurrentTaskCount()
boolean handlePubTimeout(SessionIdProvider sessionIdProvider)
sessionIdProvider - SessionIdProviderCopyright © 2017. All rights reserved.