정기적으로 작업을 실행하고 Jetty 컨테이너를 사용하는 간단한 Groovlet을 작성하고 싶습니다. 이 작업을 수행하는 가장 쉬운 방법은 무엇입니까? 나는 Quartz가 사용되어야한다고 생각하지만 그것이 Jetty와 어떻게 통합되는지 잘 모르겠습니다. 작업을 시작하고 중지 할 수있는 제어판을 만들어야합니까? 내가 시작할 수있는 간단한 예제가 있습니까?Jetty에서 예약 된 작업
3
A
답변
2
작업 구성 파일 "jobconf.xml"또는 작업을 구성해야하는 속성 파일을 만들어야합니다. 이 파일은 응용 프로그램의 클래스 경로 또는 부두에 추가해야합니다.
<web-app>
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>config-file</param-name>
<param-value>quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>start-scheduler-on-load</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>com.v2sol.StartQuartz</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/fst</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>one</servlet-name>
<servlet-class>com.v2sol.ExcelDBServlet</servlet-class>
<init-param>
<param-name>cronExpr</param-name>
<param-value>0,30 * * ? * MON-FRI</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>one</servlet-name>
<url-pattern>/excel</url-pattern>
</servlet-mapping>
</web-app>
및 사용 스케줄러를 서블릿에 :
이System.out.println("Initializing Scheduler PlugIn for Jobs!");
super.init(config);
ServletContext ctx = config.getServletContext();
Scheduler scheduler = null;
StdSchedulerFactory factory = (StdSchedulerFactory)
ctx.getAttribute(QuartzInitializerServlet.QUARTZ_FACTORY_KEY);
try {
scheduler = factory.getScheduler();
JobDetail jd = new JobDetail("job1", "group1",ExcelJob.class);
CronTrigger cronTrigger = new CronTrigger("trigger1","group1");
String cronExpr = null;
cronExpr = getInitParameter("cronExpr");
System.out.println(cronExpr);
cronTrigger.setCronExpression(cronExpr);
scheduler.scheduleJob(jd, cronTrigger);
System.out.println("Job scheduled now ..");
} catch (Exception e){
e.printStackTrace();
}
0
석영 스케쥴러를 생성하고 응용 프로그램 컨텍스트에 넣습니다. Groovlet에 액세스 할 수 있으며 새 작업을 제출하고 실행중인 작업을 조작 할 수 있습니다.
5
석영보다 간단한 해결책이이다
당신은 다음과 같이 당신의 web.xml에 서블릿의 PARAMS에 QuartzInitializer를 추가해야 JDK에서 제공하는 Timer 및 TimerTask 클래스를 사용하십시오. 다양한 스케줄링 옵션을 제공하지는 않지만, 일정한 간격으로 태스크를 실행하려는 경우에는 충분해야합니다.
콘솔을 사용하여 작업을 시작하지 않으려면 직접 작성하거나 Timer에 대한 액세스를 제공하는 JMX 빈을 작성하고 JMX 콘솔을 사용하여 호출하십시오.
관련 문제
- 1. 코코아로 예약 된 작업?
- 2. 예약 된 작업 생성
- 3. 예약 된 작업 오류
- 4. ASP.NET : 예약 된 작업
- 5. Backgroundrb 예약 된 작업 종료
- 6. URL을 여는 예약 된 작업
- 7. 예약 된 작업 실패 오류
- 8. .Net에서 예약 된 작업 설정
- 9. PHP 및 예약 된 작업
- 10. myVBS 예약 된 작업 실행
- 11. 스크립트에서 예약 작업 시작
- 12. 동적 예약 작업
- 13. 예약 된 작업 또는 Windows 서비스
- 14. 효율적인 프로세서 사용으로 예약 된 작업 배포
- 15. 활동 내 예약 된 작업 설정
- 16. Windows Server 2008에서 예약 된 작업 만들기
- 17. 이벤트 로그에 쓰기 Windows 예약 된 작업
- 18. Wordpress 플러그인에서 예약 된 작업 실행
- 19. Windows 서비스 및 system.timer.timer로 예약 된 작업
- 20. 안드로이드 : 예약 된 작업 및 CPU 효율성
- 21. 예약 된 작업 Windows 서버 2003
- 22. Windows Phone 7 예약 된 작업 실행
- 23. 예약 된 작업 통신 (ITask 인터페이스 사용)?
- 24. 호스팅 된 웹 서버에서 작업 예약
- 25. .aspx 페이지를 실행하도록 예약 된 작업
- 26. 예약 된 작업 또는 Windows 서비스
- 27. 예약 보고서 (작업) 모니터
- 28. 장고 예약 작업
- 29. PHP에서 예약 작업
- 30. vb.net에서 예약 작업