i trying use spring integration spring batch.i transforming message message joblaunchrequest
public class filemessagetojobrequest { private job job; private string fileparametername; public void setfileparametername(string fileparametername) { this.fileparametername = fileparametername; } public void setjob(job job) { this.job = job; } public joblaunchrequest torequest(message<file> message) throws ioexception { jobparametersbuilder jobparametersbuilder = new jobparametersbuilder(); string filename = message.getpayload().getname(); string currentdatetime = localdatetime.now().tostring(); logger.info("currentdatetime"+currentdatetime); jobparametersbuilder.addstring(this.filename, filename); jobparametersbuilder.addstring(this.currentdatetime, currentdatetime); return new joblaunchrequest(job, jobparametersbuilder.tojobparameters()); } }
here integration flow
return integrationflows. from(files.inboundadapter(new file("landing")) .preventduplicates() .patternfilter("*.txt") , e -> e.poller(pollers.fixeddelay(2500) .maxmessagesperpoll(15) .taskexecutor(getfileprocessexecutor()))) .transform(filemessagetojobrequest) .handle(joblaunchinggw(joblauncher)).get(); @bean public messagehandler joblaunchinggw(joblauncher joblauncher) { return new joblaunchinggateway(joblauncher); }
for reason 1 of files of 2 print same time not getting processed if 2 files print same currentdatetime.the files come @ same time.i using threadpooltaskexecutor corepool size,max pool size ,queue capacity 15
string currentdatetime = localdatetime.now().tostring();
the file not getting processed.i assuming kind of race condition.i tried synchronized on joblaunchrequest.is race condition?why message drop?
i using spring integration 4.2.6 latest versions(almost) of spring.
my reference config question java dsl config
Comments
Post a Comment