java - @Async is not working in REST class -


i working on webservice project built using spring. configuration done using annotation. there 1 method sends push notification. there many notifications send, causes delay in response. so, apply @async annotation "sendpushnotification" method. but, still no improvement in response. have gone through of blogs , stackoverflow find solution. but, no success. have applied following annotation service class.

@component @configuration @enableaspectjautoproxy @enableasync 

method async called.

@post @path("/sampleservice") @consumes(mediatype.application_form_urlencoded) public response sampleservice(@formparam ...) {     ...     list<user> commentors = <other method fetch commentors>;     sendpushnotification(commentors);     ... } 

my async method.

@async private void sendpushnotification(list<user> commentors) {     if (commentors != null) {         (user user : commentors) {             try {                 int numnewcomments = ps.getcommentsunseenbyuser(user);                   sendmessage("ios", user, "2", "" + numnewcomments, "true");              } catch (exception e) {                 log.error(e.getmessage(), e);             }         }     } } 

is there missing?

you're invoking method on this

sendpushnotification(commentors); // equivalent this.sendpushnotification(commentors); 

that won't work. spring works proxying beans provide functionality. gives proxy bean has reference real object. caller sees , invokes

proxy.someenhancedmethod() 

but happens is

proxy.someenhancedmethod() -> enhanced logic -> target.someenhancedmethod() 

but in sampleservice service method, don't have reference proxy, have reference target. you've gained nothing, basically. suggest moving @async logic different type, declaring , injecting bean of type resource.

spring explains of above in documentation, here.


Comments

Popular posts from this blog

python - mat is not a numerical tuple : openCV error -

c# - MSAA finds controls UI Automation doesn't -

wordpress - .htaccess: RewriteRule: bad flag delimiters -