本文整理了Java中org.jboss.netty.util.Timer
类的一些代码示例,展示了Timer
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Timer
类的具体详情如下:
包路径:org.jboss.netty.util.Timer
类名称:Timer
[英]Schedules TimerTasks for one-time future execution in a background thread.
[中]安排TimerTasks,以便将来在后台线程中一次性执行。
代码示例来源:origin: io.netty/netty
/**
* Stops the {@link Timer} which was specified in the constructor of this
* handler. You should not call this method if the {@link Timer} is in use
* by other objects.
*/
public void releaseExternalResources() {
timer.stop();
}
代码示例来源:origin: io.netty/netty
Channel channel = ctx.getChannel();
synchronized (this) {
if (delay == 0 && messagesQueue.isEmpty()) {
if (! channel.isConnected()) {
trafficCounter.bytesRealWriteFlowControl(size);
ctx.sendDownstream(evt);
return;
if (! channel.isConnected()) {
trafficCounter.bytesRealWriteFlowControl(size);
ctx.sendDownstream(evt);
return;
if (! channel.isConnected()) {
writeTimeout = timer.newTimeout(new TimerTask() {
public void run(Timeout timeout) throws Exception {
sendAllValid(ctx, futureNow);
代码示例来源:origin: kakaochatfriend/KakaoChatFriendAPI
public void run(Timeout timeout) {
/**
* 이전 ping시간과 pong시간을 체크
* - ping과 pong이 다르면 응답을 안준 케이스임 => 재접속
*/
if ( pingTime != pongTime ) {
LOG.warn("ping/pong failed, ping:"+pingTime+", pong:"+pongTime+" ===> doing closed()");
e.getChannel().close();
resetTime ();
return;
}
pingTime = System.currentTimeMillis();
BSONObject ping = toPing(pingTime);
e.getChannel().write(ping);
LOG.debug("[send] ping:{}"+ping);
if ( pingInterval > 0 ) {
timer.newTimeout( new PingPongSchedule (e), pingInterval, TimeUnit.MILLISECONDS);
}
}
代码示例来源:origin: io.netty/netty
return;
Channel channel = ctx.getChannel();
if (channel != null && channel.isConnected()) {
logger.debug("Read suspend: " + wait + ':' + channel.isReadable() + ':' +
rws.readSuspend);
return;
if (channel.isReadable() && ! rws.readSuspend) {
rws.readSuspend = true;
channel.setReadable(false);
rws.reopenReadTimerTask = new ReopenReadTimerTask(ctx);
timeout = timer.newTimeout(rws.reopenReadTimerTask, wait,
TimeUnit.MILLISECONDS);
informReadOperation(ctx, now);
ctx.sendUpstream(evt);
代码示例来源:origin: io.netty/netty
public void run(Timeout timeout) throws Exception {
if (timeout.isCancelled() || !ctx.getChannel().isOpen()) {
return;
}
State state = (State) ctx.getAttachment();
long currentTime = System.currentTimeMillis();
long lastReadTime = state.lastReadTime;
long nextDelay = readerIdleTimeMillis - (currentTime - lastReadTime);
if (nextDelay <= 0) {
// Reader is idle - set a new timeout and notify the callback.
state.readerIdleTimeout =
timer.newTimeout(this, readerIdleTimeMillis, TimeUnit.MILLISECONDS);
fireChannelIdle(ctx, IdleState.READER_IDLE, lastReadTime);
} else {
// Read occurred before the timeout - set a new timeout with shorter delay.
state.readerIdleTimeout =
timer.newTimeout(this, nextDelay, TimeUnit.MILLISECONDS);
}
}
}
代码示例来源:origin: kakaochatfriend/KakaoChatFriendAPI
protected void handleRequest(TYPE type, final Channel channel, BSONObject bsonIn) {
LOG.debug("REQUEST user(%d) ", (Long) bsonIn.get("user_key"));
long userKey = (Long) bsonIn.get("user_key");
long roomKey = (Long) bsonIn.get("room_key");
int msgId = (Integer) bsonIn.get("msg_id");
String message = (String) bsonIn.get("message");
final BSONObject bsonOut = new BasicBSONObject();
bsonOut.put("type", "response");
bsonOut.put("room_key", roomKey);
bsonOut.put("user_key", userKey);
bsonOut.put("msg_id", msgId);
bsonOut.put("message", "1:" + message);
List<String> msgs = new ArrayList<String>();
msgs.add("2:" + message);
msgs.add("3:" +(new StringBuffer(message)).reverse().toString());
if ( delay > 0 ) {
timer.newTimeout( new TimerTask() {
public void run(Timeout timeout) throws Exception {
LOG.debug("OUT => " + bsonOut);
channel.write(bsonOut);
}
}, delay, TimeUnit.MILLISECONDS);
} else {
LOG.debug("OUT => " + bsonOut);
channel.write(bsonOut);
}
}
代码示例来源:origin: alibaba/wasp
ChannelFuture closeFuture = channelToClose.close();
timer.stop();
if (awaitCompletion && (closeFuture != null)) {
closeFuture.awaitUninterruptibly(connectTimeoutMillis);
代码示例来源:origin: com.lambdaworks/lettuce
@Override
public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
if (reconnect) {
if (attempts < 8) attempts++;
int timeout = 2 << attempts;
timer.newTimeout(this, timeout, TimeUnit.MILLISECONDS);
}
ctx.sendUpstream(e);
}
代码示例来源:origin: io.netty/netty
final Channel channel = ctx.getChannel();
ChannelFuture handshakeFuture;
Exception exception = null;
handshakeFuture = this.handshakeFuture = future(channel);
if (handshakeTimeoutInMillis > 0) {
handshakeTimeout = timer.newTimeout(new TimerTask() {
public void run(Timeout timeout) throws Exception {
ChannelFuture future = SslHandler.this.handshakeFuture;
代码示例来源:origin: io.netty/netty
/**
* Start the monitoring process.
*/
public void start() {
if (monitorActive) {
return;
}
lastTime.set(milliSecondFromNano());
// if executor is null, it means it is piloted by a GlobalChannelTrafficCounter, so no executor
if (checkInterval.get() > 0 && timer != null) {
monitorActive = true;
timerTask = new TrafficMonitoringTask(trafficShapingHandler, this);
timeout =
timer.newTimeout(timerTask, checkInterval.get(), TimeUnit.MILLISECONDS);
}
}
代码示例来源:origin: com.facebook.nifty/nifty-client
public void run(Timeout timeout) throws Exception
{
if (timeoutHandler == null) {
return;
}
if (timeout.isCancelled()) {
return;
}
if (!getNettyChannel().isOpen()) {
return;
}
long currentTimeNanos = System.nanoTime();
long timePassed = currentTimeNanos - timeoutHandler.getLastMessageReceivedNanos();
long nextDelayNanos = timeoutNanos - timePassed;
if (nextDelayNanos <= 0) {
onReadTimeoutFired(request);
}
else {
request.setReadTimeout(timer.newTimeout(this, nextDelayNanos, TimeUnit.NANOSECONDS));
}
}
}
代码示例来源:origin: org.neociclo.accord.odetteftp/oftp-core
public synchronized void stop(boolean emergencyCloseDown) {
LOGGER.info("[{}] Stopping Odette FTP service...", this);
if (timer != null) {
}
if (channel != null) {
// stop accepting incoming connections
channel.unbind();
if (emergencyCloseDown) {
ChannelGroupFuture closeActiveChannels = activeChildChannels.close();
// TODO send Emergency Close Down End Session to all channels open
// TODO maybe safe to include a timeout argument here
closeActiveChannels.awaitUninterruptibly();
} else {
ChannelGroupFuture activeChannelsCloseFuture = getChannelGroupCloseFuture(activeChildChannels);
// TODO maybe safe to include a timeout argument here
activeChannelsCloseFuture.awaitUninterruptibly();
}
timer.stop();
channel.getFactory().releaseExternalResources();
channel = null;
timer = null;
}
LOGGER.info("[{}] Odette FTP is stopped.", this);
}
代码示例来源:origin: io.netty/netty
Integer key = ctx.getChannel().hashCode();
PerChannel perChannel = channelQueues.get(key);
long wait = 0;
return;
Channel channel = ctx.getChannel();
if (channel != null && channel.isConnected()) {
logger.debug("Read suspend: " + wait + ':' + channel.isReadable() + ':' +
rws.readSuspend);
return;
if (channel.isReadable() && ! rws.readSuspend) {
rws.readSuspend = true;
channel.setReadable(false);
rws.reopenReadTimerTask = new ReopenReadTimerTask(ctx);
timeout = timer.newTimeout(rws.reopenReadTimerTask, wait,
TimeUnit.MILLISECONDS);
informReadOperation(ctx, now);
ctx.sendUpstream(evt);
代码示例来源:origin: io.netty/netty
public void run(Timeout timeout) throws Exception {
if (timeout.isCancelled() || !ctx.getChannel().isOpen()) {
return;
}
State state = (State) ctx.getAttachment();
long currentTime = System.currentTimeMillis();
long lastWriteTime = state.lastWriteTime;
long nextDelay = writerIdleTimeMillis - (currentTime - lastWriteTime);
if (nextDelay <= 0) {
// Writer is idle - set a new timeout and notify the callback.
state.writerIdleTimeout =
timer.newTimeout(this, writerIdleTimeMillis, TimeUnit.MILLISECONDS);
fireChannelIdle(ctx, IdleState.WRITER_IDLE, lastWriteTime);
} else {
// Write occurred before the timeout - set a new timeout with shorter delay.
state.writerIdleTimeout =
timer.newTimeout(this, nextDelay, TimeUnit.MILLISECONDS);
}
}
}
代码示例来源:origin: wg/lettuce
@Override
public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
if (reconnect) {
if (attempts < 8) attempts++;
int timeout = 2 << attempts;
timer.newTimeout(this, timeout, TimeUnit.MILLISECONDS);
}
ctx.sendUpstream(e);
}
代码示例来源:origin: com.facebook.nifty/nifty-core
expireTimeout.set(taskTimeoutTimer.newTimeout(new TimerTask() {
@Override
public void run(Timeout timeout) throws Exception {
ConnectionContext connectionContext = ConnectionContexts.getContext(ctx.getChannel());
RequestContext requestContext = new NiftyRequestContext(connectionContext, inProtocol, outProtocol, messageTransport);
RequestContexts.setCurrentContext(requestContext);
代码示例来源:origin: io.netty/netty
/**
* Start the monitoring process.
*/
@Override
public synchronized void start() {
if (monitorActive) {
return;
}
lastTime.set(milliSecondFromNano());
long localCheckInterval = checkInterval.get();
if (localCheckInterval > 0) {
monitorActive = true;
timerTask =
new MixedTrafficMonitoringTask(
(GlobalChannelTrafficShapingHandler) trafficShapingHandler, this);
timeout = timer.newTimeout(timerTask, checkInterval.get(), TimeUnit.MILLISECONDS);
}
}
代码示例来源:origin: io.netty/netty
final ToSend newToSend;
boolean globalSizeExceeded = false;
Channel channel = ctx.getChannel();
synchronized (perChannel) {
if (writedelay == 0 && perChannel.messagesQueue.isEmpty()) {
if (! channel.isConnected()) {
trafficCounter.bytesRealWriteFlowControl(size);
ctx.sendDownstream(evt);
perChannel.lastWriteTimestamp = now;
return;
if (! ctx.getChannel().isConnected()) {
return;
if (! ctx.getChannel().isConnected()) {
timer.newTimeout(new TimerTask() {
public void run(Timeout timeout) throws Exception {
sendAllValid(ctx, forSchedule, futureNow);
代码示例来源:origin: io.netty/netty
public void run(Timeout timeout) throws Exception {
if (timeout.isCancelled() || !ctx.getChannel().isOpen()) {
return;
}
State state = (State) ctx.getAttachment();
long currentTime = System.currentTimeMillis();
long lastIoTime = Math.max(state.lastReadTime, state.lastWriteTime);
long nextDelay = allIdleTimeMillis - (currentTime - lastIoTime);
if (nextDelay <= 0) {
// Both reader and writer are idle - set a new timeout and
// notify the callback.
state.allIdleTimeout =
timer.newTimeout(this, allIdleTimeMillis, TimeUnit.MILLISECONDS);
fireChannelIdle(ctx, IdleState.ALL_IDLE, lastIoTime);
} else {
// Either read or write occurred before the timeout - set a new
// timeout with shorter delay.
state.allIdleTimeout =
timer.newTimeout(this, nextDelay, TimeUnit.MILLISECONDS);
}
}
}
代码示例来源:origin: org.onosproject/onos-of-ctl
@Override
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
if (timeoutNanos > 0) {
timeout = timer.newTimeout(new HandshakeTimeoutTask(ctx),
timeoutNanos, TimeUnit.NANOSECONDS);
}
ctx.sendUpstream(e);
}
内容来源于网络,如有侵权,请联系作者删除!