tomcat 负载均衡三,定时任务处理

一.项目采用的是quartz框架做定时任务,所以做的是quart分布式解决负载均衡下定时任务问题
1.需要将定时任务持久化到数据库,在数据库对应sql语句里面找到对应数据库,生成对应的数据库表
tomcat 负载均衡三,定时任务处理_第1张图片
2.在项目中配置定时任务

  1. 创建quartz.properties文件,文件内容如下
org.quartz.scheduler.instanceName = TestScheduler1  
org.quartz.scheduler.instanceId = AUTO 

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.maxMisfiresToHandleAtATime=10
org.quartz.jobStore.isClustered = true 
org.quartz.jobStore.clusterCheckinInterval = 20000

org.quartz.jobStore.dataSource = quartz
org.quartz.dataSource.quartz.provider=hikaricp
org.quartz.dataSource.quartz.driver=com.mysql.jdbc.Driver
org.quartz.dataSource.quartz.URL=jdbc:mysql:///purchase_order?serverTimezone=UTC 数据库地址
org.quartz.dataSource.quartz.user=root 用户名
org.quartz.dataSource.quartz.password=xx 密码
org.quartz.dataSource.quartz.maxConnections=5

2.创建任务

@PersistJobDataAfterExecution
@DisallowConcurrentExecution// 不允许并发执行
public class QuartzDemo extends QuartzJobBean {
    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("-----------111111111----------");
    }

}

配置任务

  
        
            com.creatooor.order.quartz.QuartzDemo
        
        
        
    

    
        
        
        
        
    

    
    
        
            
        
        
        

        

        
            
                
                
                
            
        
    

结果:
tomcat 负载均衡三,定时任务处理_第2张图片
只有一个tomcat开启执行任务

你可能感兴趣的:(tomcat,负载均衡)