2017-11-20 60 views
0
내가 구성 작업의 동작을 처리 오류를 시뮬레이션하고 있습니다

에 기록되지는 failedTask 구성 작업 정의는 다음과 같습니다실패 단계 DB

<f1: sampleTask --fail=true --custom-argument=someMessage || f2: sampleTask>

sampleTask 클래스 러너 :

public class SampleTask implements ApplicationRunner { 
    @Autowired 
    SampleTaskProperties taskProperties; 


    @Override 
    public void run(ApplicationArguments p) throws Exception { 

     if(taskProperties.isFail()){ 
      throw new Exception(taskProperties.getCustomArgument()); 
     } 
    } 
} 

종속성 :

ext { 
    springCloudTaskVersion = '1.2.2.RELEASE' 
    springCloudVersion = 'Edgware.RC1' 
} 
dependencies { 

    compile('org.springframework.cloud:spring-cloud-starter-task') 
    compile('org.springframework.cloud:spring-cloud-stream-binder-rabbit') 
    compile('org.springframework.cloud:spring-cloud-task-stream') 
    compile 'org.postgresql:postgresql:42.1.4' 
    runtime 'org.springframework.boot:spring-boot-starter-jdbc' 
    compile 'org.springframework.boot:spring-boot-starter' 

    compileOnly("org.springframework.boot:spring-boot-configuration-processor"); 

    testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

문제 f1의 종료 시간에 DB 레코더되지 않고 failedTask 상태가 failedTaskend_timefailedTask-f1task_executions 테이블은 모두 비어있는 대시 보드 UI에 STARTED로 표시된다는 점이다. 내가

compile('org.springframework.cloud:spring-cloud-stream-binder-rabbit)` 
compile('org.springframework.cloud:spring-cloud-task-stream') 

종속성을 제거 경우

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
2017-11-20 12:09:06.869 WARN 28244 --- [   main] o.s.boot.SpringApplication    : Error handling failed (failed to convert object to Message; nested exception is org.springframework.messaging.MessagingException: At most one parameter (or expression via method-level @Payload) may be mapped to the payload or Message. Found more than one on method [public abstract void org.springframework.cloud.task.listener.TaskExecutionListener.onTaskFailed(org.springframework.cloud.task.repository.TaskExecution,java.lang.Throwable)]) 
2017-11-20 12:09:06.895 ERROR 28244 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

java.lang.IllegalStateException: Failed to execute ApplicationRunner 
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:726) [spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE] 
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:713) [spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE] 
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:703) [spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:304) [spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE] 
    at com.philips.asp.flow.task.SampleTaskApplication.main(SampleTaskApplication.java:31) [classes!/:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144] 
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144] 
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [sample-task-0.1.11-SNAPSHOT.jar:na] 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [sample-task-0.1.11-SNAPSHOT.jar:na] 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [sample-task-0.1.11-SNAPSHOT.jar:na] 
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [sample-task-0.1.11-SNAPSHOT.jar:na] 
Caused by: java.lang.Exception: sdfsdf 
    at com.philips.asp.flow.task.SampleTaskConfiguration$SampleTask.run(SampleTaskConfiguration.java:53) ~[classes!/:na] 
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:723) [spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE] 
    ... 14 common frames omitted 

2017-11-20 12:09:06.898 INFO 28244 --- [   main] s.c.a.AnnotationConfigApplicationContext : Closing org.spring[email protected]2d363fb3: startup date [Mon Nov 20 12:08:54 IST 2017]; root of context hierarchy 
2017-11-20 12:09:06.899 INFO 28244 --- [   main] s.c.a.AnnotationConfigApplicationContext : Closing org.spring[email protected]6a55299e: startup date [Mon Nov 20 12:09:05 IST 2017]; parent: org.spring[email protected]2d363fb3 
2017-11-20 12:09:06.915 INFO 28244 --- [   main] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase 2147483647 
2017-11-20 12:09:06.916 INFO 28244 --- [   main] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase 2147482647 
2017-11-20 12:09:06.917 INFO 28244 --- [   main] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase 0 
2017-11-20 12:09:06.917 INFO 28244 --- [   main] ProxyFactoryBean$MethodInvocationGateway : stopped taskEventListener 
2017-11-20 12:09:06.917 INFO 28244 --- [   main] ProxyFactoryBean$MethodInvocationGateway : stopped taskEventListener 
2017-11-20 12:09:06.917 INFO 28244 --- [   main] ProxyFactoryBean$MethodInvocationGateway : stopped taskEventListener 
2017-11-20 12:09:06.917 INFO 28244 --- [   main] o.s.i.gateway.GatewayProxyFactoryBean : stopped taskEventListener 
2017-11-20 12:09:06.918 INFO 28244 --- [   main] o.s.i.endpoint.EventDrivenConsumer  : Removing {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel 
2017-11-20 12:09:06.918 INFO 28244 --- [   main] o.s.i.channel.PublishSubscribeChannel : Channel 'sampleTask:12890.errorChannel' has 0 subscriber(s). 
2017-11-20 12:09:06.918 INFO 28244 --- [   main] o.s.i.endpoint.EventDrivenConsumer  : stopped _org.springframework.integration.errorLogger 
2017-11-20 12:09:06.918 INFO 28244 --- [   main] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase -2147482648 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.i.monitor.IntegrationMBeanExporter : Unregistering JMX-exposed beans on shutdown 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.i.monitor.IntegrationMBeanExporter : Unregistering JMX-exposed beans 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.i.monitor.IntegrationMBeanExporter : Summary on shutdown: task-events 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.i.monitor.IntegrationMBeanExporter : Summary on shutdown: errorChannel 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.i.monitor.IntegrationMBeanExporter : Summary on shutdown: nullChannel 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.i.monitor.IntegrationMBeanExporter : Summary on shutdown: _org.springframework.integration.errorLogger.handler 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Unregistering JMX-exposed beans on shutdown 
2017-11-20 12:09:06.919 INFO 28244 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Unregistering JMX-exposed beans 
2017-11-20 12:09:06.920 WARN 28244 --- [   main] o.s.b.f.support.DisposableBeanAdapter : Invocation of destroy method failed on bean with name 'taskLifecycleListener': org.springframework.messaging.converter.MessageConversionException: failed to convert object to Message; nested exception is org.springframework.messaging.MessagingException: At most one parameter (or expression via method-level @Payload) may be mapped to the payload or Message. Found more than one on method [public abstract void org.springframework.cloud.task.listener.TaskExecutionListener.onTaskFailed(org.springframework.cloud.task.repository.TaskExecution,java.lang.Throwable)] 
2017-11-20 12:09:06.920 INFO 28244 --- [   main] o.s.s.c.ThreadPoolTaskScheduler   : Shutting down ExecutorService 'taskScheduler' 

- 아래의 경고 로그 메시지가 사라지고 모든 것이 예상대로 작동합니다 :

는 아래 f1 실행의 로그입니다.

2017-11-20 12:09:06.920 WARN 28244 --- [ main] o.s.b.f.support.DisposableBeanAdapter : Invocation of destroy method failed on bean with name 'taskLifecycleListener': org.springframework.messaging.converter.MessageConversionException: failed to convert object to Message; nested exception is org.springframework.messaging.MessagingException: At most one parameter (or expression via method-level @Payload) may be mapped to the payload or Message. Found more than one on method [public abstract void org.springframework.cloud.task.listener.TaskExecutionListener.onTaskFailed(org.springframework.cloud.task.repository.TaskExecution,java.lang.Throwable)]

제발 조언.

답변