java project spring job 定时

悲剧的程序员 2013-11-15 09:51:05
如题 : 这样的如何配置 。希望给源码 。谢谢!! 在线等!!!急!!!
...全文
165 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
悲剧的程序员 2013-11-15
  • 打赏
  • 举报
回复
表达能力不强!
  • 打赏
  • 举报
回复
你下次把你的问题描述的清晰一点。看了你上面的代码,你的意思是启动spring,而不是嵌入web的启动。这个很简单啊。可以FileSystemXmlApplicationContext 或者你上面写的 ClassPathXmlApplicationContext。只要一调用上面的2个类,生成他们的实例,这个spring的容器就启动了。你把Quartz的Spring配置进去就行了。spring的文档里面写的很全。
  • 打赏
  • 举报
回复
package com.vista.quartz;

import  java.io.File;       

import  java.io.FileFilter;   



public class FileExtensionFileFilter implements  FileFilter 

{

     private  String extension;//文件后缀     

     

     public  FileExtensionFileFilter(String extension)

     {       

         this.extension = extension;

     }             

     public   boolean  accept(File file)

     {//只接受指定后缀的文件       

         // Lowercase the filename for easier comparison       

         String lCaseFilename = file.getName().toLowerCase();//小写化

         return  (file.isFile() &&(lCaseFilename.indexOf(extension) >  0 )) ?  true : false ;       

     }       

}
package com.vista.quartz;



import java.util.Date;       



import org.apache.commons.logging.Log;       

import org.apache.commons.logging.LogFactory;       

import org.quartz.JobDetail;

import org.quartz.Scheduler;       

import org.quartz.SchedulerException;       

import org.quartz.Trigger;

import org.quartz.TriggerUtils;

import org.quartz.impl.StdSchedulerFactory;



public class SimpleScheduler 

{

    static Log logger = LogFactory.getLog(SimpleScheduler.class);         

    public static void main(String[] args) 

    {       

         SimpleScheduler simple = new SimpleScheduler();       

         try

         {       

             // Create a Scheduler and schedule the Job       

             Scheduler scheduler = simple.createScheduler();       

             simple.scheduleJob(scheduler);       

    

             // Start the Scheduler running       

             scheduler.start();       

    

             logger.info( "Scheduler started at " + new Date());       

    

        } catch (SchedulerException ex) {       

             logger.error(ex);       

        }   

        

    }       

    public Scheduler createScheduler() throws SchedulerException 

    {//创建调度器       

        return StdSchedulerFactory.getDefaultScheduler();

    }   

    

    //Create and Schedule a ScanDirectoryJob with the Scheduler       

    private void scheduleJob(Scheduler scheduler) throws SchedulerException 

    {       

         // Create a JobDetail for the Job       

         JobDetail jobDetail = new JobDetail("ScanDirectory",Scheduler.DEFAULT_GROUP,ScanDirectoryJob.class); 

         // Configure the directory to scan       

         jobDetail.getJobDataMap().put("SCAN_DIR","D:\\Tomcat\\conf"); //set the JobDataMap that is associated with the Job.            

         // Create a trigger that fires every 10 seconds, forever       

         Trigger trigger = TriggerUtils.makeSecondlyTrigger(10);//每10秒触发一次       

         trigger.setName("scanTrigger");       

         // Start the trigger firing from now       

         trigger.setStartTime(new Date());//设置第一次触发时间            

         // Associate the trigger with the job in the scheduler       

         scheduler.scheduleJob(jobDetail, trigger);       

    }       

}
package com.vista.quartz;



import java.util.Date;       



import org.apache.commons.logging.Log;       

import org.apache.commons.logging.LogFactory;       

import org.quartz.JobDetail;

import org.quartz.Scheduler;       

import org.quartz.SchedulerException;       

import org.quartz.Trigger;

import org.quartz.TriggerUtils;

import org.quartz.impl.StdSchedulerFactory;



public class SimpleScheduler 

{

    static Log logger = LogFactory.getLog(SimpleScheduler.class);         

    public static void main(String[] args) 

    {       

         SimpleScheduler simple = new SimpleScheduler();       

         try 

         {       

             // Create a Scheduler and schedule the Job       

             Scheduler scheduler = simple.createScheduler();         

             // Jobs can be scheduled after Scheduler is running       

             scheduler.start();          

             logger.info("Scheduler started at " + new Date());         

             // Schedule the first Job       

             simple.scheduleJob(scheduler, "ScanDirectory1",ScanDirectoryJob.class,"D:\\conf1", 10);          

             // Schedule the second Job       

             simple.scheduleJob(scheduler, "ScanDirectory2",ScanDirectoryJob.class,"D:\\conf2 ", 15);       

        } 

        catch (SchedulerException ex)

        {       

             logger.error(ex);       

        }       

    }       

    public Scheduler createScheduler() throws SchedulerException 

    {//创建调度器       

        return StdSchedulerFactory.getDefaultScheduler();

    }   

    

    private void scheduleJob(Scheduler scheduler, String jobName,Class jobClass, String scanDir, int scanInterval) throws SchedulerException 

    {         

        // Create a JobDetail for the Job       

       JobDetail jobDetail = new JobDetail(jobName,Scheduler.DEFAULT_GROUP, jobClass);         

       // Configure the directory to scan       

       jobDetail.getJobDataMap().put("SCAN_DIR", scanDir);         

       // Trigger that repeats every "scanInterval" secs forever       

       Trigger trigger = TriggerUtils.makeSecondlyTrigger(scanInterval);         

       trigger.setName(jobName + "-Trigger");         

       // Start the trigger firing from now       

       trigger.setStartTime(new Date());         

       // Associate the trigger with the job in the scheduler       

       scheduler.scheduleJob(jobDetail, trigger);       

  }       

}
悲剧的程序员 2013-11-15
  • 打赏
  • 举报
回复
timer 定时器有问题,不稳定。如果异常抛的久了,它会罢工,没办法就试试spring了!不过还是感谢给位滴!
悲剧的程序员 2013-11-15
  • 打赏
  • 举报
回复

private final static Logger log = Logger.getLogger(SpmApp.class);
    public static final String[] APPLICATION_CONTEXT_FILES = new String[] { "applicationContext.xml" };  // 加载配置文件 初始化启动
	public static ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(APPLICATION_CONTEXT_FILES);
    
	/**
	 * 
	* @Title: main 
	* @Description: 主方法
	* @param @param args
	* @param @throws UnknownHostException    设定文件 
	* @return void    返回类型 
	* @throws
	 */
    public static void main(String[] args) throws UnknownHostException {
    	// 启动定时任务
//    	Timer timer1 = new Timer();
//    	Timer timer2 = new Timer();
//    	EnterCardTimerTask enterTimerTask = new EnterCardTimerTask();
//    	OutCardTimerTask outTimerTask = new OutCardTimerTask();
//    	timer1.schedule(enterTimerTask, 100, 3000);
//    	timer2.schedule(outTimerTask, 100, 10000);
    	
    	// 配置、启动 webservice
        String ip = SpmPropertie.getProperty("ip");// 获得本机IP
        String port = SpmPropertie.getProperty("port", "8086");

        String address = "http://" + ip + ":" + port + "/services/SpmWebService";

        Endpoint.publish(address, new MiddlewareWebService());
        log.info("Web Service(" + address + "?wsdl) 已启动.");
        
    }

<bean id="missionJob" class="org.springframework.scheduling.quartz.JobDetailBean">
	    <property name="jobClass" value="cn.org.timespace.middleware.Mission"></property>
	</bean>
	
	<bean id="enterTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
	    <property name="jobDetail" ref="missionJob"></property>
	    <property name="cronExpression">
	    	<value>0/2 * * * * ? *</value>
	    </property>
	</bean>
	
	<bean id="scheduledFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	   <property name="triggers">
	     <list> 
	       <ref bean="enterTriggerBean"/>
	     </list>
	   </property>
   </bean>
已经解决
浪漫小和 2013-11-15
  • 打赏
  • 举报
回复
Quart 看着很强大啊.
  • 打赏
  • 举报
回复
临时写的。 采用的 quartz-all-1.6.5.jar

import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class SimpleJob implements Job {
	private static final Logger LOGGER = Logger.getLogger(SimpleJob.class);
	
	
	@Override
	public void execute(JobExecutionContext arg0)
			throws JobExecutionException {
		LOGGER.info("start to work.");

	}
}


import java.text.ParseException;
import java.util.Date;

import org.apache.log4j.Logger;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzTest {
	private static final Logger LOGGER = Logger.getLogger(QuartzTest.class);

	public void runScheduler(String cronExpression) {
		Scheduler scheduler = null;

		try {
			// Create a default instance of the Scheduler
			scheduler = StdSchedulerFactory.getDefaultScheduler();
			scheduler.start();
			LOGGER.info("Scheduler was started at " + new Date());

			// Create the JobDetail
			JobDetail jobDetail = new JobDetail("PrintInfoJob",
					Scheduler.DEFAULT_GROUP, SimpleJob.class);
			// Create a CronTrigger
			try {
				CronTrigger trigger = new CronTrigger("CronTrigger", null,
						cronExpression);

				scheduler.scheduleJob(jobDetail, trigger);
			} catch (ParseException ex) {
				LOGGER.error("Error parsing cron expr", ex);

			}

		} catch (SchedulerException ex) {
			LOGGER.error(ex);
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String cronExpression = "0/5 * * * * ? *";
		QuartzTest test = new QuartzTest();
		test.runScheduler(cronExpression);
	}

}
  • 打赏
  • 举报
回复
引用 7 楼 NullPointerEx 的回复:
[quote=引用 6 楼 qin_easy 的回复:] [quote=引用 5 楼 NullPointerEx 的回复:] 四个字: 不知所云
就是不在tomcat 下跑的 job 定时。[/quote] java有自带类Timer可以处理简单的定时任务。 网上也有很多框架提供这种支持,比如2楼所说的Quartz[/quote] 他要的是现成的代码,不是解决的方案。
NullPointerEx 2013-11-15
  • 打赏
  • 举报
回复
引用 6 楼 qin_easy 的回复:
[quote=引用 5 楼 NullPointerEx 的回复:] 四个字: 不知所云
就是不在tomcat 下跑的 job 定时。[/quote] java有自带类Timer可以处理简单的定时任务。 网上也有很多框架提供这种支持,比如2楼所说的Quartz
悲剧的程序员 2013-11-15
  • 打赏
  • 举报
回复
引用 5 楼 NullPointerEx 的回复:
四个字: 不知所云
就是不在tomcat 下跑的 job 定时。
NullPointerEx 2013-11-15
  • 打赏
  • 举报
回复
四个字: 不知所云
悲剧的程序员 2013-11-15
  • 打赏
  • 举报
回复
在线等啊 。
悲剧的程序员 2013-11-15
  • 打赏
  • 举报
回复
, 那就是吧 。求代码!
  • 打赏
  • 举报
回复
你要的就是JOB定时任务。用Quartz框架。和spring有什么关系?
悲剧的程序员 2013-11-15
  • 打赏
  • 举报
回复
不是 java web project 。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧