定期的にタスクを実行し、Jettyコンテナを使用しているシンプルなGroovletを作成したいと思います。このタスクを達成する最も簡単な方法は何ですか?私はQuartzを使うべきだと思っていますが、Jettyとの統合方法がわかりません。タスクを開始および停止するためのコントロールパネルを作成する必要がありますか?私が見ることができる簡単な例はありますか?Jettyでスケジュールされたタスク
3
A
答えて
2
ジョブ設定ファイル "jobconf.xml"またはジョブを設定する必要があるプロパティファイルを作成する必要があります。このファイルは、アプリケーションのクラスパスまたはjettyのいずれかに追加する必要があります。
<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 Beanを作成し、JMXコンソールを使用して呼び出す必要があります。
関連する問題
- 1. スケジュールされたタスク
- 2. 複数のスレッドプールでスケジュールされた春のスケジュールされたタスク
- 3. PowerShellのスケジュールされたタスク
- 4. スケジュールされたタスクが
- 5. MySQL - スケジュールされたタスク
- 6. スケジュールされたタスクをC#
- 7. java timerスケジュールされたタスク
- 8. スケジュールされたタスクとプリンタ
- 9. Plesk Panelスケジュールされたタスク
- 10. C#プログラミングでスケジュールされたWindowsのタスク
- 11. スケジュールされたタスクまたはWindowsサービス
- 12. スケジュールされたタスク:サービス/ DLL /コンソールアプリケーション
- 13. スケジュールされたタスクの作成
- 14. PowerShellのFileSystemWatcherは、スケジュールされたタスク
- 15. Windows 2008 Serverスケジュールされたタスク
- 16. apache ignite .netスケジュールされたタスク
- 17. PHPスケジュールされたタスクのセキュリティ
- 18. ブラウザゲームエンジン - Windowsサービス、スケジュールされたタスク、スレッド、キャッシュタスク?
- 19. Backgroundrbスケジュールされたタスクの終了
- 20. 編集スケジュールされたタスクは、プログラム
- 21. 終了しますスケジュールされたタスク
- 22. スケジュールされたタスクPHPの代替
- 23. Javaスケジュールされたタスク(ウィンドウ内)
- 24. スケジュールされたタスクの失敗エラー
- 25. Azureサービスファブリックとスケジュールされたタスク
- 26. Laravel MySQLエラー(スケジュールされたタスクのみ)
- 27. zookeeperを使用したクラスタでのスケジュールされたタスク
- 28. Windowsでスケジュールされたタスクで.jarを実行できない
- 29. ScheduledExecutorServiceを使用してAndroidでスケジュールされたタスクをスケジュール解除する
- 30. joomlaのスケジュールされたタスクは毎秒実行されます