小编Hie*_*Lam的帖子

Spring框架@Configurable vs @Configuration

我似乎在理解这2个注释时遇到问题。我已经尝试阅读javadocs,但仍然无法弄清楚。谁能用简单的代码来帮助解释这两个问题?提前非常感谢。

spring spring-annotations

5
推荐指数
1
解决办法
5588
查看次数

目录轮询的最佳实践

我必须进行批处理以自动化业务流程.我必须定期轮询目录以检测新文件并进行处理.在处理旧文件时,可以使用新文件.目前,我使用quartz调度程序和线程同步来确保只有一个线程可以处理文件.

部分代码是:

应用程序的context.xml

<bean id="methodInvokingJob"
  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><br/>
  <property name="targetObject" ref="documentProcessor" /><br/>
  <property name="targetMethod" value="processDocuments" /><br/>
</bean>
Run Code Online (Sandbox Code Playgroud)

DocumentProcessor
.....

public void processDocuments() { 
  LOG.info(Thread.currentThread().getName() + " attempt to run.");
  if (!processing) {
     synchronized (this) {
        try {
           processing = true;
           LOG.info(Thread.currentThread().getName() + " is processing");
           List<String> xmlDocuments = documentManager.getFileNamesFromFolder(incomingFolderPath);               
           // loop over the files and processed unlock files.
           for (String xmlDocument : xmlDocuments) {
              processDocument(xmlDocument);
           }
        }
        finally {
           processing = false;
        }
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

对于当前代码,我必须阻止其他线程在处理一个线程时处理文件.这是一个好主意吗 ?或者我们支持多线程处理.在这种情况下,我如何知道哪些文件正在处理以及哪些文件刚刚到达?任何想法都非常感激.

java batch-processing

2
推荐指数
1
解决办法
6156
查看次数