当前位置: 首页>>代码示例>>Java>>正文


Java TaskEngine类代码示例

本文整理汇总了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!!
	}
}
 
开发者ID:meisterfuu,项目名称:Openfire-GCM,代码行数:22,代码来源:GcmPlugin.java

示例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));
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:17,代码来源:MultiUserChatServiceImpl.java

示例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));
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:17,代码来源:MultiUserChatServiceImpl.java

示例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); }
        });
    }
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:29,代码来源:PubSubPersistenceManager.java

示例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;
            }
        }
    }
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:25,代码来源:XmppWebSocket.java

示例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 );
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:32,代码来源:HttpSessionManager.java

示例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);
                }
            }
        }
    });
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:21,代码来源:HttpSession.java

示例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);
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:20,代码来源:ConnectionMultiplexerManager.java

示例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);
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:22,代码来源:LoginLimitManager.java

示例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);
   }
}
 
开发者ID:igniterealtime,项目名称:Openfire,代码行数:19,代码来源:MotDPlugin.java

示例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);
 }
 
开发者ID:coodeer,项目名称:g3server,代码行数:20,代码来源:ConnectionMultiplexerManager.java

示例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);
}
 
开发者ID:coodeer,项目名称:g3server,代码行数:22,代码来源:LoginLimitManager.java

示例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);
      }
   }
 
开发者ID:coodeer,项目名称:g3server,代码行数:19,代码来源:MotDPlugin.java

示例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); }
	});
}
  }
 
开发者ID:idwanglu2010,项目名称:openfire,代码行数:28,代码来源:PubSubPersistenceManager.java

示例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);
 	            }
       }
}
		});
 }
 
开发者ID:idwanglu2010,项目名称:openfire,代码行数:20,代码来源:HttpSession.java


注:本文中的org.jivesoftware.util.TaskEngine类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。