本文整理汇总了Java中org.jivesoftware.util.TaskEngine类的典型用法代码示例。如果您正苦于以下问题:Java TaskEngine类的具体用法?Java TaskEngine怎么用?Java TaskEngine使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TaskEngine类属于org.jivesoftware.util包,在下文中一共展示了TaskEngine类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: process
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
private void process(final Message msg) {
if(mDebug)Log.info("GCM Plugin process() called");
try {
if (checkTarget(msg)) {
if(mDebug)Log.info("GCM Plugin Check=true");
TimerTask messageTask = new TimerTask() {
@Override
public void run() {
sendExternalMsg(msg);
}
};
TaskEngine.getInstance().schedule(messageTask, 20);
} else {
if(mDebug)Log.info("GCM Plugin Check=false");
}
} catch (UserNotFoundException e) {
Log.error("GCM Plugin (UserNotFoundException) Something went reeeaaaaally wrong");
e.printStackTrace();
// Something went reeeaaaaally wrong if you end up here!!
}
}
示例2: setKickIdleUsersTimeout
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
@Override
public void setKickIdleUsersTimeout(int timeout) {
if (this.user_timeout == timeout) {
return;
}
// Cancel the existing task because the timeout has changed
if (userTimeoutTask != null) {
userTimeoutTask.cancel();
}
this.user_timeout = timeout;
// Create a new task and schedule it with the new timeout
userTimeoutTask = new UserTimeoutTask();
TaskEngine.getInstance().schedule(userTimeoutTask, user_timeout, user_timeout);
// Set the new property value
MUCPersistenceManager.setProperty(chatServiceName, "tasks.user.timeout", Integer.toString(timeout));
}
示例3: setLogConversationsTimeout
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
@Override
public void setLogConversationsTimeout(int timeout) {
if (this.log_timeout == timeout) {
return;
}
// Cancel the existing task because the timeout has changed
if (logConversationTask != null) {
logConversationTask.cancel();
}
this.log_timeout = timeout;
// Create a new task and schedule it with the new timeout
logConversationTask = new LogConversationTask();
TaskEngine.getInstance().schedule(logConversationTask, log_timeout, log_timeout);
// Set the new property value
MUCPersistenceManager.setProperty(chatServiceName, "tasks.log.timeout", Integer.toString(timeout));
}
示例4: savePublishedItem
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
/**
* Creates and stores the published item in the database.
* @param wrapper The published item, wrapped for retry
*/
private static void savePublishedItem(RetryWrapper wrapper) {
boolean firstPass = (wrapper.getRetryCount() == 0);
PublishedItem item = wrapper.get();
String itemKey = item.getItemKey();
itemCache.put(itemKey, item);
log.debug("Added new (inbound) item to cache");
synchronized (itemsPending) {
LinkedListNode<RetryWrapper> itemToReplace = itemsPending.remove(itemKey);
if (itemToReplace != null) {
itemToReplace.remove(); // remove duplicate from itemsToAdd linked list
}
LinkedListNode<RetryWrapper> listNode = firstPass ?
itemsToAdd.addLast(wrapper) :
itemsToAdd.addFirst(wrapper);
itemsPending.put(itemKey, listNode);
}
// skip the flush step if this is a retry attempt
if (firstPass && itemsPending.size() > MAX_ITEMS_FLUSH) {
TaskEngine.getInstance().submit(new Runnable() {
@Override
public void run() { flushPendingItems(false); }
});
}
}
示例5: run
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
@Override
public void run() {
if (!isWebSocketOpen()) {
TaskEngine.getInstance().cancelScheduledTask(pingTask);
} else {
long idleTime = System.currentTimeMillis() - JiveConstants.MINUTE;
if (xmppSession.getLastActiveDate().getTime() >= idleTime) {
return;
}
try {
// see https://tools.ietf.org/html/rfc6455#section-5.5.2
wsSession.getRemote().sendPing(null);
lastPingFailed = false;
} catch (IOException ioe) {
Log.error("Failed to ping remote peer: " + wsSession, ioe);
if (lastPingFailed) {
closeSession();
TaskEngine.getInstance().cancelScheduledTask(pingTask);
} else {
lastPingFailed = true;
}
}
}
}
示例6: start
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
/**
* Starts the services used by the HttpSessionManager.
*
* (Re)creates and configures a pooled executor to handle async routing for incoming packets with a configurable
* (through property "xmpp.httpbind.worker.threads") amount of threads; also uses an unbounded task queue and
* configurable ("xmpp.httpbind.worker.timeout") keep-alive.
*
* Note: Apart from the processing threads configured in this class, the server also uses a threadpool to perform
* the network IO (as configured in ({@link HttpBindManager}). BOSH installations expecting heavy loads may want to
* allocate additional threads to this worker pool to ensure timely delivery of inbound packets
*/
public void start() {
Log.info( "Starting instance" );
this.sessionManager = SessionManager.getInstance();
final int maxClientPoolSize = JiveGlobals.getIntProperty( "xmpp.client.processing.threads", 8 );
final int maxPoolSize = JiveGlobals.getIntProperty("xmpp.httpbind.worker.threads", maxClientPoolSize );
final int keepAlive = JiveGlobals.getIntProperty( "xmpp.httpbind.worker.timeout", 60 );
sendPacketPool = new ThreadPoolExecutor(getCorePoolSize(maxPoolSize), maxPoolSize, keepAlive, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(), // unbounded task queue
new NamedThreadFactory( "httpbind-worker-", true, null, Thread.currentThread().getThreadGroup(), null )
);
sendPacketPool.prestartCoreThread();
// Periodically check for Sessions that need a cleanup.
inactivityTask = new HttpSessionReaper();
TaskEngine.getInstance().schedule( inactivityTask, 30 * JiveConstants.SECOND, 30 * JiveConstants.SECOND );
}
示例7: failDelivery
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
private void failDelivery(final Collection<Packet> packets) {
if (packets == null) {
// Do nothing if someone asked to deliver nothing :)
return;
}
// use a separate thread to schedule backup delivery
TaskEngine.getInstance().submit(new Runnable() {
@Override
public void run() {
for (Packet packet : packets) {
try {
backupDeliverer.deliver(packet);
}
catch (UnauthorizedException e) {
Log.error("Unable to deliver message to backup deliverer", e);
}
}
}
});
}
示例8: ConnectionMultiplexerManager
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
private ConnectionMultiplexerManager() {
sessionManager = XMPPServer.getInstance().getSessionManager();
// Start thread that will send heartbeats to Connection Managers every 30 seconds
// to keep connections open.
TimerTask heartbeatTask = new TimerTask() {
@Override
public void run() {
try {
for (ConnectionMultiplexerSession session : sessionManager.getConnectionMultiplexerSessions()) {
session.deliverRawText(" ");
}
}
catch(Exception e) {
Log.error(e.getMessage(), e);
}
}
};
TaskEngine.getInstance().schedule(heartbeatTask, 30*JiveConstants.SECOND, 30*JiveConstants.SECOND);
}
示例9: LoginLimitManager
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
/**
* Constructs a new login limit manager.
*/
private LoginLimitManager() {
// Set up initial maps
attemptsPerIP = new ConcurrentHashMap<>();
attemptsPerUsername = new ConcurrentHashMap<>();
// Max number of attempts per ip address that can be performed in given time frame (10 attempts default)
maxAttemptsPerIP = JiveGlobals.getLongProperty("adminConsole.maxAttemptsPerIP", 10);
// Time frame before attempts per ip addresses are reset (15 minutes default)
millisecondsBetweenPerIP = JiveGlobals.getLongProperty("adminConsole.perIPAttemptResetInterval", 900000);
// Max number of attempts per username that can be performed in a given time frame (10 attempts default)
maxAttemptsPerUsername = JiveGlobals.getLongProperty("adminConsole.maxAttemptsPerUsername", 10);
// Time frame before attempts per ip addresses are reset (15 minutes default)
millisecondsBetweenPerUsername = JiveGlobals.getLongProperty("adminConsole.perUsernameAttemptResetInterval", 900000);
// Set up per username attempt reset task
TaskEngine.getInstance().scheduleAtFixedRate(new PerUsernameTask(), 0, millisecondsBetweenPerUsername);
// Set up per IP attempt reset task
TaskEngine.getInstance().scheduleAtFixedRate(new PerIPAddressTask(), 0, millisecondsBetweenPerIP);
}
示例10: sessionCreated
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
public void sessionCreated(Session session) {
if (isEnabled()) {
final Message message = new Message();
message.setTo(session.getAddress());
message.setFrom(serverAddress);
message.setSubject(getSubject());
message.setBody(getMessage());
TimerTask messageTask = new TimerTask() {
@Override
public void run() {
router.route(message);
}
};
TaskEngine.getInstance().schedule(messageTask, 5000);
}
}
示例11: ConnectionMultiplexerManager
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
private ConnectionMultiplexerManager() {
sessionManager = XMPPServer.getInstance().getSessionManager();
// Start thread that will send heartbeats to Connection Managers every 30 seconds
// to keep connections open.
TimerTask heartbeatTask = new TimerTask() {
@Override
public void run() {
try {
for (ConnectionMultiplexerSession session : sessionManager.getConnectionMultiplexerSessions()) {
session.deliverRawText(" ");
}
}
catch(Exception e) {
Log.error(e.getMessage(), e);
}
}
};
TaskEngine.getInstance().schedule(heartbeatTask, 30*JiveConstants.SECOND, 30*JiveConstants.SECOND);
}
示例12: LoginLimitManager
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
/**
* Constructs a new login limit manager.
*/
private LoginLimitManager() {
// Set up initial maps
attemptsPerIP = new ConcurrentHashMap<String,Long>();
attemptsPerUsername = new ConcurrentHashMap<String,Long>();
// Max number of attempts per ip address that can be performed in given time frame (10 attempts default)
maxAttemptsPerIP = JiveGlobals.getLongProperty("adminConsole.maxAttemptsPerIP", 10);
// Time frame before attempts per ip addresses are reset (15 minutes default)
millisecondsBetweenPerIP = JiveGlobals.getLongProperty("adminConsole.perIPAttemptResetInterval", 900000);
// Max number of attempts per username that can be performed in a given time frame (10 attempts default)
maxAttemptsPerUsername = JiveGlobals.getLongProperty("adminConsole.maxAttemptsPerUsername", 10);
// Time frame before attempts per ip addresses are reset (15 minutes default)
millisecondsBetweenPerUsername = JiveGlobals.getLongProperty("adminConsole.perUsernameAttemptResetInterval", 900000);
// Set up per username attempt reset task
TaskEngine.getInstance().scheduleAtFixedRate(new PerUsernameTask(), 0, millisecondsBetweenPerUsername);
// Set up per IP attempt reset task
TaskEngine.getInstance().scheduleAtFixedRate(new PerIPAddressTask(), 0, millisecondsBetweenPerIP);
}
示例13: sessionCreated
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
public void sessionCreated(Session session) {
if (isEnabled()) {
final Message message = new Message();
message.setTo(session.getAddress());
message.setFrom(serverAddress);
message.setSubject(getSubject());
message.setBody(getMessage());
TimerTask messageTask = new TimerTask() {
@Override
public void run() {
router.route(message);
}
};
TaskEngine.getInstance().schedule(messageTask, 5000);
}
}
示例14: savePublishedItem
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
/**
* Creates and stores the published item in the database.
* @param wrapper The published item, wrapped for retry
*/
private static void savePublishedItem(RetryWrapper wrapper) {
boolean firstPass = (wrapper.getRetryCount() == 0);
PublishedItem item = wrapper.get();
String itemKey = item.getItemKey();
itemCache.put(itemKey, item);
log.debug("Added new (inbound) item to cache");
synchronized (itemsPending) {
LinkedListNode<RetryWrapper> itemToReplace = itemsPending.remove(itemKey);
if (itemToReplace != null) {
itemToReplace.remove(); // remove duplicate from itemsToAdd linked list
}
LinkedListNode<RetryWrapper> listNode = firstPass ?
itemsToAdd.addLast(wrapper) :
itemsToAdd.addFirst(wrapper);
itemsPending.put(itemKey, listNode);
}
// skip the flush step if this is a retry attempt
if (firstPass && itemsPending.size() > MAX_ITEMS_FLUSH) {
TaskEngine.getInstance().submit(new Runnable() {
public void run() { flushPendingItems(false); }
});
}
}
示例15: failDelivery
import org.jivesoftware.util.TaskEngine; //导入依赖的package包/类
private void failDelivery(final Collection<Packet> packets) {
if (packets == null) {
// Do nothing if someone asked to deliver nothing :)
return;
}
// use a separate thread to schedule backup delivery
TaskEngine.getInstance().submit(new Runnable() {
public void run() {
for (Packet packet : packets) {
try {
backupDeliverer.deliver(packet);
}
catch (UnauthorizedException e) {
Log.error("Unable to deliver message to backup deliverer", e);
}
}
}
});
}