【问题标题】:Spring scheduled-tasks: monitor execution durationsSpring 计划任务:监控执行持续时间
【发布时间】:2012-06-11 21:06:45
【问题描述】:

我们在 Spring Web 应用程序中使用计划任务来发送提醒、每日摘要等:

    <task:scheduled-tasks>
    <task:scheduled ref="fooService" method="bar" cron="0 0/5 * * * ?"/>
    </task:scheduled-tasks>

每个计划任务调用一个给定的服务方法(上面伪代码中的 fooService.bar())。我想监控每次执行持续多长时间。随着负载、数据或复杂性的增加,其中一些方法可能需要更长的时间。我可以为每个服务方法添加日志语句(现在大约 10 个,但将来可能更多),或者使用方面在每个方法周围放置一些秒表行为。但是有没有更直接的方法来为春季的所有计划任务实现这一目标?

【问题讨论】:

    标签: spring


    【解决方案1】:

    你可以使用:

    在上述所有解决方案中,您需要以某种方式区分要跟踪的方法。您可以采用某个接口的所有方法,所有带有某个注解的方法(包括自定义的),使用方法命名约定...

    当然,您必须选择最适合您需求的解决方案,因为最终目标是在不添加任何外部代码的情况下进行监控。

    【讨论】:

    • 谢谢 - 我查看了 org.springframework.aop.interceptor.CustomizableTraceInterceptor,并意识到我想添加阈值以记录警告和错误。我创建了自己的 MethodInterceptor 实现来满足这些需求,但您的回答为我指明了正确的方向,并回答了我提出的问题。
    猜你喜欢
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多