Spring setting application property programmatically

user2270439 :

Basically I have some cron - properties in my application.yml:

B = 0 11/15 * * * ?

I have a bean RefresherB which has

@Scheduled(cron = "${B}")
public void refresh() {
    //Refreshing
}

I also have a rest endpoint from which I want to update this B property

@RequestMapping("schedule")
public boolean changeRefreshSchedule(@QueryParam("cron") String expression){

Where I want to update the B property so that the RefresherB bean also gets the update. How would I go about doing this? I do not want to change the application.yml file only update the value for runtime.

luk2302 :

Looking at the source code of ScheduledAnnotationBeanPostProcessor my assumptions seems to be correct: that cannot be done easily.

Because the methods annotated with @Scheduled are processed once at application context startup, the values of the annotation are parsed, tasks are scheduled and after that the annotation are never touched / looked at again. That means even if you could change the value of the annotation which is actually difficult already spring would not know about your changed value.

Of course you can write your own custom ScheduledAnnotationBeanPostProcessor which could handle that but that would be a lot of work. Other options include what is written in How to change Spring's @Scheduled fixedDelay at runtime which would still require quite a bit of work on your part. There is no out of the box solution.

What you can do of course is let spring trigger your method far too often and have some custom logic in place which determines when to actually do something.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Setting profiles in Spring Boot application based on system property

Spring Boot Programmatically setting profiles

Setting IsChecked property of programmatically created RadioButtons

Programmatically Setting Public Property in Class Ctor

Mule: Setting a property on a spring bean

Setting AuthExceptionRetryInterval property in Spring Kafka

Spring Kafka Property for setting SeekToCurrentBatchErrorHandler

Spring Boot JNDI Application Setting

Ember.js setting application property on load

Programmatically setting the dock:name Java Mac OS X JVM property

Programmatically setting Application Insights instrumentation key throws error

Programmatically shut down Spring Boot application

Programmatically adding Beans to Spring application Context

Programmatically restart HikariPool in Spring Boot application?

Setting an array property from a single ${property} in Spring bean

How can I setting datasource in Spring application

Setting logback property via spring config + environment variable in spring config

Programmatically restart Spring Boot application / Refresh Spring Context

Spring: How to programmatically fill a list of bean references in a list property on a BeanDefinition?

Spring SpEL expression evaluation for an application yml property

Configure mongodb property maxWaitQueueSize in Spring boot application?

Using application property in Spring Boot annotation?

Spring.queries property in application.properties

how to set system property in spring boot application

Spring 3.5 Setting an xml property, handling the default value using PropertyPlaceholderConfigurer

Spring Boot is not setting the @Value property in Jersey's ResourceConfig class

Setting the property of a property

Setting a property of a property in a struct?

Setting LayoutParams programmatically not working

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive