質問編集履歴

1

Taskの処理を追記

2019/05/22 04:24

投稿

zvub1123
zvub1123

スコア230

test CHANGED
File without changes
test CHANGED
@@ -263,3 +263,123 @@
263
263
 
264
264
 
265
265
  ご助力いただけますでしょうか。。
266
+
267
+
268
+
269
+ 追記:
270
+
271
+ Fargate用のTaskを、Branch内の処理が終了したら落とすように改修したところ、無限ループからは抜け出せました。
272
+
273
+
274
+
275
+ 改修前:
276
+
277
+ ```java
278
+
279
+ while (true) {
280
+
281
+ GetActivityTaskResult getActivityTaskResult = client.getActivityTask(
282
+
283
+ new GetActivityTaskRequest().withActivityArn(ACTIVITY_ARN));
284
+
285
+
286
+
287
+ if (getActivityTaskResult.getTaskToken() != null) {
288
+
289
+ try {
290
+
291
+ // Fargate Task 処理
292
+
293
+
294
+
295
+ client.sendTaskSuccess(new SendTaskSuccessRequest()
296
+
297
+ .withOutput(sfResult)
298
+
299
+ .withTaskToken(getActivityTaskResult.getTaskToken()));
300
+
301
+ System.out.println("Worker SendTask Success.");
302
+
303
+ } catch (Exception e) {
304
+
305
+ client.sendTaskFailure(new SendTaskFailureRequest()
306
+
307
+ .withTaskToken(getActivityTaskResult.getTaskToken()));
308
+
309
+ logger.error("StepFunctions Failed\n" + e.getMessage() + "\n");
310
+
311
+ System.out.println("Worker Failure.");
312
+
313
+ }
314
+
315
+ } else {
316
+
317
+ sleep(1000);
318
+
319
+ }
320
+
321
+ }
322
+
323
+ ```
324
+
325
+ 改修後
326
+
327
+ ```java
328
+
329
+ while (true) {
330
+
331
+ GetActivityTaskResult getActivityTaskResult = client.getActivityTask(
332
+
333
+ new GetActivityTaskRequest().withActivityArn(ACTIVITY_ARN));
334
+
335
+
336
+
337
+ if (getActivityTaskResult.getTaskToken() != null) {
338
+
339
+ try {
340
+
341
+ // Fargate Task 処理
342
+
343
+
344
+
345
+ client.sendTaskSuccess(new SendTaskSuccessRequest()
346
+
347
+ .withOutput(sfResult)
348
+
349
+ .withTaskToken(getActivityTaskResult.getTaskToken()));
350
+
351
+ System.out.println("Worker SendTask Success.");
352
+
353
+ } catch (Exception e) {
354
+
355
+ client.sendTaskFailure(new SendTaskFailureRequest()
356
+
357
+ .withTaskToken(getActivityTaskResult.getTaskToken()));
358
+
359
+ logger.error("StepFunctions Failed\n" + e.getMessage() + "\n");
360
+
361
+ System.out.println("Worker Failure.");
362
+
363
+ }
364
+
365
+ } else {
366
+
367
+ break; // loop out
368
+
369
+ }
370
+
371
+ }
372
+
373
+ ```
374
+
375
+
376
+
377
+ 当初の問題は解決していますが、モヤモヤが残っている状態です。
378
+
379
+
380
+
381
+ Taskの側ではStateMachineのParallel処理におけるBranchごとの終了ステータスを見ていないのでしょうか。(正常な動作ではあると思いますが。。。)
382
+
383
+ また、その場合、Activityをポーリングするタスクというのはソース上などから明示的に閉じる必要があるのでしょうか。
384
+
385
+ その辺りに詳しい方が居ましたら、ご教示いただけると幸いです。