生產環境連接池和線程池配置參考

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName" value="${db.jdbc.driverClassName}" />
   <property name="url" value="${db1.jdbc.url}" />
   <property name="username" value="${db1.jdbc.username}" />
   <property name="password" value="${db1.jdbc.password}" />
   <property name="maxActive" value="20" />
   <property name="maxIdle" value="3" />
   <property name="maxWait" value="15000" />
   <property name="timeBetweenEvictionRunsMillis" value="60000" />
   <property name="minEvictableIdleTimeMillis" value="180000" />
</bean>

 10個商品,10000個人來搶,請求來了放進redis隊列後立即返回前端,由線程異步從隊列裏拿請求數據進行後續處理。最前面應該會有一些條件判斷,這些條件判斷應該簡化,快速。就像搶小米手機,放進隊列前主要就是判斷下用戶有沒有預。那麼就事先把預約過的用戶名單放到緩存裏。沒預約,直接return,有預約就入隊,滿10個了,後面的全部return。頁面可以採用ajax局部刷新,查隊列有沒有滿,滿了就按鈕置灰。下載 

<!-- MQ發消息線程池 -->
<bean id="taskMqExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >
   <!-- 核心線程數  -->
<property name="corePoolSize" value="10" />
   <!-- 最大線程數 -->
<property name="maxPoolSize" value="200" />
   <!-- 隊列最大長度 -->
<property name="queueCapacity" value="500" />
   <!-- 線程池維護線程所允許的空閒時間 -->
<property name="keepAliveSeconds" value="5" />
   <!-- 線程池對拒絕任務(無線程可用)的處理策略 -->
<property name="rejectedExecutionHandler">
      <bean class="java.util.concurrent.ThreadPoolExecutor$DiscardPolicy" />
   </property>
</bean>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章