b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

odbc连接scan ip_weblogic连接scan ip_weblogic数据源连接池(21)

电脑杂谈  发布时间:2017-01-31 20:11:17  来源:网络整理

3:在Spring配置job,trigger,Scheduler,Listener组件

<!-- 扫描商家状态创建定时任务 -->
<bean id="accountStatusTaskScannerJobDetail"
 class="org.springframework.scheng.quartz.JobDetailBean">
 	<property name="name" value="accountStatusTaskScannerJobDetail"></property>
 	<property name="group" value="CrmAccountGroup"></property>
 	<property name="jobClass" value="***.crm.quartz.job.AccountStatusTaskScannerJob"></property>
 	<!-- requestsRecovery属性为true,则当Quartz服务被中止后,再次启动任务时会尝试恢复执行之前未完成的所有任务-->
 	<property name="requestsRecovery" value="true"/>
 	<!-- 标识job是持久的,删除所有触发器的时候不被删除 -->
 	<property name="durability" value="true"/>
 	<property name="volatility" value="false"></property>
</bean>
<bean id="accountStatusTaskScannerTrigger" class="org.springframework.scheng.quartz.CronTriggerBean">
	 <property name="group" value="CrmDealGroup"></property>
	 <property name="name" value="accountStatusTaskScannerTrigger"></property>
 	<property name="jobDetail" ref="accountStatusTaskScannerJobDetail"></property>
 	<property name="cronExpression" value="0 0 1 * * ?"></property>
</bean>

<!-- 定义Quartz 器 -->
<bean id="quartzExceptionSchedulerListener" 
class="***.crm.quartz.listener.QuartzExceptionSchedulerListener"></bean>

<!-- Quartz调度工厂 -->
<bean id="quartzScheduler"
 class="org.springframework.scheng.quartz.SchedulerFactoryBean">
 	<property name="quartzProperties">
 	<props>
 		<prop key="org.quartz.scheduler.instanceName">CRMscheduler</prop>
 		<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
 		<!-- 线程池配置 -->
 		<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
 		<prop key="org.quartz.threadPool.threadCount">20</prop>
 		<prop key="org.quartz.threadPool.threadPriority">5</prop>
 		<!-- JobStore 配置 -->
 		<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
		<!-- 集群配置 -->
 		<prop key="org.quartz.jobStore.isClustered">false</prop>
 		<prop key="org.quartz.jobStore.clusterCheckinInterval">15000</prop>
 		<prop key="org.quartz.jobStore.maxMisfiresToHandleAtATime">1</prop>
		<!-- 数据源配置 使用DBCP连接池 数据源与dataSource一致 -->
 		<prop key="org.quartz.jobStore.dataSource">myDS</prop>
 		<prop key="org.quartz.dataSource.myDS.driver">${database.driverClassName}</prop>
 		<prop key="org.quartz.dataSource.myDS.URL">${database.url}</prop>
 		<prop key="org.quartz.dataSource.myDS.user">${database.username}</prop>
 		<prop key="org.quartz.dataSource.myDS.password">${database.password}</prop>
 		<prop key="org.quartz.dataSource.myDS.maxConnections">5</prop>
		<prop key="org.quartz.jobStore.misfireThreshold">120000</prop>
	</props>
	</property>
	<property name="schedulerName" value="CRMscheduler" />
	<!--必须的,QuartzScheduler 延时启动,应用启动完后 QuartzScheduler 再启动-->
 	<property name="startupDelay" value="30"/>
	<property name="applicationContextSchedulerContextKey" value="applicationContextKey" />
	<!--可选,QuartzScheduler 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 -->
 	<property name="overwriteExistingJobs" value="true" />
	<!-- 设置自动启动 -->
 	<property name="autoStartup" value="true" />
	<!-- 注册触发器 -->
 	<property name="triggers">
 <list>
 	<ref bean="dailyStatisticsTrigger" />
 	<ref bean="accountGrabedScannerTrigger" />
 	<ref bean="syncAccountFromPOITrigger" />
 	<ref bean="userSyncScannerTrigger" />
 	<ref bean="syncParentBranchFromPOITrigger"/>
 	<ref bean="privateReminderTrigger" />
 	<ref bean="onlineBranchesScannerTrigger" />
 	<ref bean="syncCtContactServiceTrigger" />
 	<ref bean="dealLinkDianpingScannerTrigger" />
 	<ref bean="accountStatusTaskScannerTrigger"/>
 	<ref bean="nDaysActivityScannerTrigger"/>
 </list>
 </property>
<!-- 注册jobDetail -->
 <property name="jobDetails">
 	<list>
 		<ref bean="myTestQuartzJobDetail"/>
 		<ref bean="accountPrivateToProtectedJobDetail"/>
 		<ref bean="accountProtectedToPublicJobDetail"/>
 <ref bean="nDaysActivityToProtectedJobDetail"/>
 </list>
 </property>
<property name="schedulerListeners">
 	<list>
 		<ref bean="quartzExceptionSchedulerListener"/>
 	</list>
 </property>
</bean>

Crm目前可以做到对Quartz实例的监控,操作.动态部署Trigger

后续待开发功能和问题

1:目前实现对job,Trigger操作,动态部署Trigger,后续需要加入Calendar(排除特定日期),Listener(动态加载监控),Job的动态部署(只要bean的名称和方法名,就可完成对job生成,部署)

2:由于Quartz集群中的job目前是在任意一台server中执行,Quartz日志生成各自的系统目录中, quartz日志无法统一.

3:Quartz2.x已经支持可选节点执行job(期待Spring升级后对新Quartz支持)

4:Quartz内部的DB操作大量Trigger存在严重竞争问题,瞬间大量trigger执行,目前只能通过(org.quartz.jobStore.tablePrefix = QRTZ)分表操作,存在长时间lock_wait(新版本据说有提高);

5:如果有需要,可以抽取出Quartz,变成单独的服务,供其它系统调度使用使用


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29777-21.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...