spring

资源文件加载:

 

<bean id="propertyConfigurer"
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:config/ms/jdbc.properties</value>
    <value>classpath:config/ms/ms.properties</value>
    <value>classpath:config/ms/warn.properties</value>
    <value>classpath:config/ms/status.properties</value>
   </list>
  </property>
 </bean>
 
 <bean id="reloadableResource"
  class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
  <property name="basenames">
   <set>
    <value>/WEB-INF/classes/config/ms/ms</value>
   </set>
  </property>
  <property name="cacheSeconds" value="50" />
 </bean>

 

 

dbcp连接池:

 

        BasicDataSource bds = new BasicDataSource();
        bds.setDriverClassName(this.getDriverClass());
        bds.setUrl(this.getUrl());
        bds.setUsername(this.getUsername());
        bds.setPassword(this.password);
        bds.setMaxWait(Integer.valueOf(maxWait).intValue());
        bds.setMaxActive(Integer.valueOf(maxActive).intValue());
        bds.setMaxIdle(Integer.valueOf(maxIdle).intValue());
        bds.setMinIdle(Integer.valueOf(minIdle).intValue());
        bds.setInitialSize(Integer.valueOf(initialSize).intValue());
        bds.setRemoveAbandoned(true);
        bds.setRemoveAbandonedTimeout(30);
        bds.setLogAbandoned(false);
        return bds;

 

 

连接池:

 

 

//创建一个固定大小的线程,使用优先级队列
        //        pool = new ThreadPoolExecutor(10, 10, 0, TimeUnit.SECONDS, new PriorityBlockingQueue(30),
        //            new ThreadPoolExecutor.CallerRunsPolicy());
        //采用无堵塞先进先出队列
        pool = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, 0, TimeUnit.SECONDS,
            new ArrayBlockingQueue(workQueue, true), new ThreadPoolExecutor.CallerRunsPolicy());

 

 

 

 public int process(List moConmmandList)
    {
        while (pool.getQueue().size() > maxQueueSize - 1)
        {
            try
            {
                Thread.currentThread().sleep(50);
            }
            catch (InterruptedException e)
            {
                logger.error("循环等待上行处理线程池任务队列失败", e);
                return -1;
            }
        }
        for (int i = 0; i < moConmmandList.size(); i++ )
        {
            //组装成任务
            Runnable inierUpSMS = transformToPoolTask((MoItem)moConmmandList.get(i));
            if (inierUpSMS != null)
            {
                pool.execute(inierUpSMS);
            }
            else
            {
                logger.debug( ((MoItem)moConmmandList.get(i - 1)).toString());
                continue;
            }
        }
        return 0;
    }

 

 

 

 

private Runnable transformToPoolTask(MoItem moItem)
    {
        UpSMS inierUpSMS = (UpSMS)upSMS.clone();
        inierUpSMS.setMoItem(moItem);
        return inierUpSMS;
    }

 

 

 

public class UpSMS implements Cloneable, Runnable

 

 

/**
     * Description: 重写克隆方法<br>
     */
    public Object clone()
    {
        try
        {
            ParseXMLV3 parseXML_clone = (ParseXMLV3) parseXML.clone();
            UpSMS upsms = (UpSMS) super.clone();
            upsms.setParseXML(parseXML_clone);
            return upsms;
        }
        catch (CloneNotSupportedException e)
        {
            logger.error("克隆点播指令解析类异常。", e);
            return null;
        }
    } 

 

 

 

 资源文件重加载:

 <bean id="resourceUtil" class="com.huawei.taskengine.comm.util.ResourceUtil">
  <property name="reloadableResource">
   <ref bean="reloadableResource"/>
  </property>
  <property name="mspUpGather_Fast">
   <ref bean="mspUpGather_Fast"/>
  </property>
  <property name="siDataTools">
   <ref bean="siDataTools"/>
  </property>
 </bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值