⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadbalancer.java

📁 华为编程开发规范与案例, 华为编程开发规范与案例,华为编程开发规范与案例
💻 JAVA
字号:
// SMSLib for Java v3
// A Java API library for sending and receiving SMS via a GSM modem
// or other supported gateways.
// Web Site: http://www.smslib.org
//
// SMSLib is distributed under the terms of the Apache License version 2.0
//
// Copyright (C) 2002-2007, Thanasis Delenikas, Athens/GREECE
// Portions Copyright:
// Davide Bettoni, Clusone/ITALY, dbettoni@users.sourceforge.net
// Tomek Cejner, Polland, heretique@users.sourceforge.net
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package org.smslib.balancing;

import java.util.List;
import org.smslib.*;
import org.smslib.gateway.*;

/**
 * Loadbalancing base class. 
 * @author heretique
 *
 */
public class LoadBalancer
{

	protected Service service;
	
	
	public LoadBalancer()
	{
	}

	/**
	 * Main utility method: send message by gateway chosen by loadbalancing algorithm.
	 * 
	 * @param msg
	 */
	public void sendMessage(OutboundMessage msg, List<AbstractGateway> candidates) throws Exception
	{
		// TODO replace exception with just return value? 
		if (candidates.size() == 0) 
		{
			 throw new RoutingException("Loadbalancing error: no candidate gateways.");
		}
		
		AbstractGateway gw = balance(msg, candidates);

		// This is because we want (do we ? :) keep gateways sending message
		// methods isolated
		// TODO allow to send or queue message
		service.sendMessage(msg, gw.getGatewayId());

	}

	/**
	 * Core of loadbalancing. Place selection algorithm here. Default is trivial
	 * selection of first candidate.
	 * 
	 * @param msg
	 */
	protected AbstractGateway balance(OutboundMessage msg, List<AbstractGateway> candidates)
	{
		return candidates.get(0);
	}
	
	
	
	public Service getService()
	{
		return service;
	}

	public void setService(Service service)
	{
		this.service = service;
	}
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -