Giter VIP home page Giter VIP logo

Comments (2)

jaehong-kim avatar jaehong-kim commented on June 2, 2024

@philippe-granet
Could you please share the class code 'com.[redacted].outbox.OutboxConfiguration'?
@async is included? or Reactor ?

from pinpoint.

philippe-granet avatar philippe-granet commented on June 2, 2024

@jaehong-kim
The problem is perhaps caused by the @RefreshScope annotation, when bean is reloaded.
https://cloud.spring.io/spring-cloud-static/spring-cloud.html
Refresh scope beans are lazy proxies that initialize when they are used (i.e. when a method is called), and the scope acts as a cache of initialized values

package com.[REDACTED];

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.cloud.context.scope.refresh.RefreshScopeRefreshedEvent;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;

@AutoConfiguration
@ComponentScan
@EnableScheduling
@EnableConfigurationProperties(OutboxProperties.class)
@RefreshScope
public class OutboxConfiguration implements SchedulingConfigurer {

    @Autowired
    @Qualifier("asyncThreadPoolTaskScheduler")
    private TaskScheduler taskScheduler;

    @Autowired
    private ApplicationContext springContext;

    private static final Logger LOG = LoggerFactory.getLogger(OutboxConfiguration.class);

    @Autowired
    private OutboxProperties properties;

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        ...
    }

    @EventListener
    public void onRefreshScopeRefreshed(final RefreshScopeRefreshedEvent event) {
        LOG.info("OutboxConfiguration : Refresh scope bean lazy proxy initialization.");
    }
}

from pinpoint.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.