質問するログイン新規登録

質問編集履歴

3

追記修正

2018/08/24 08:01

投稿

fsk5303
fsk5303

スコア21

title CHANGED
File without changes
body CHANGED
@@ -133,6 +133,7 @@
133
133
  System.out.println("/////////////////////////////////////////////////////////////////");
134
134
  System.out.println("Initialized");
135
135
  System.out.println("/////////////////////////////////////////////////////////////////");
136
+ ScheduleOutput.getInstance().startTimer();
136
137
  }
137
138
 
138
139
  @Override

2

追記

2018/08/24 08:01

投稿

fsk5303
fsk5303

スコア21

title CHANGED
File without changes
body CHANGED
@@ -119,4 +119,28 @@
119
119
 
120
120
  > またさらに内容見ると、どちらかというと定期処理をデプロイ時に初期化したいと読み取れるのですが、あってますか?
121
121
 
122
- 仰る通りです。質問内容を訂正します。
122
+ 仰る通りです。質問内容を訂正します。
123
+
124
+ ---
125
+
126
+ 以下のようなリスナーを追加したところ、もしかしたらうまく動いているかもしれません。
127
+ その他の解決方法やご指摘等ありましたら宜しくお願い致します。
128
+ ```Java
129
+ public class InitializationListener implements ServletContextListener {
130
+
131
+ public void contextInitialized(ServletContextEvent event) {
132
+ // 起動を検知
133
+ System.out.println("/////////////////////////////////////////////////////////////////");
134
+ System.out.println("Initialized");
135
+ System.out.println("/////////////////////////////////////////////////////////////////");
136
+ }
137
+
138
+ @Override
139
+ public void contextDestroyed(ServletContextEvent event) {
140
+ //終了を検知
141
+ System.out.println("/////////////////////////////////////////////////////////////////");
142
+ System.out.println("Destroyed");
143
+ System.out.println("/////////////////////////////////////////////////////////////////");
144
+ ScheduleOutput.getInstance().stopTimer();
145
+ }
146
+ ```

1

編集・追記依頼の対応

2018/08/07 08:22

投稿

fsk5303
fsk5303

スコア21

title CHANGED
@@ -1,1 +1,1 @@
1
- TomcatにWebアプリがデプロイされている間だけある処理を一定間隔で実行し続けたい
1
+ TomcatにWebアプリをリリースした後に定期処理を一定間隔で実行し、再デプロイ時に定期処理を初期化したい
body CHANGED
@@ -1,7 +1,9 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  TomcatにJavaで作ったwebアプリをデプロイし公開する。
4
- そのwebアプリがデプロイされいる間、ある処理をマルチスレッドで"1つだけ"一定間隔で実行し続けたい。
4
+ そのwebアプリをリリースし以降、ある処理を一定間隔で実行し続けたい。
5
+ そのwebアプリをアンデプロイした際は定期処理を終了したい。
6
+ そのwebアプリを再デプロイした際は定期処理を初期化し、再度実行を開始したい。
5
7
 
6
8
  ### 発生している問題
7
9
  ・Tomcatからwebアプリをアンデプロイした際にその処理が止まらない
@@ -107,4 +109,14 @@
107
109
  お恥ずかしいですが独学で学んでいるため、笑ってしまうような実装があるかと思います。
108
110
  出来れば今回の質問の本題以外のご指摘もありましたら是非宜しくお願いします。
109
111
  また、質問内容に不備がありましたら追記致します。
110
- お手数お掛け致しますが助言を宜しくお願いします。
112
+ お手数お掛け致しますが助言を宜しくお願いします。
113
+
114
+ ---
115
+
116
+ > 内容から見るとデプロイされている間というのはそのデプロイ中(初期化処理中)ではなくリリース完了後以降(初期化終了後)と読み替えていいですか?
117
+
118
+ 仰る通りです。質問内容を訂正します。
119
+
120
+ > またさらに内容見ると、どちらかというと定期処理をデプロイ時に初期化したいと読み取れるのですが、あってますか?
121
+
122
+ 仰る通りです。質問内容を訂正します。