标签: batch-processing

目录轮询的最佳实践

我必须进行批处理以自动化业务流程.我必须定期轮询目录以检测新文件并进行处理.在处理旧文件时,可以使用新文件.目前,我使用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
查看次数

Taskqueue设置精确/近似执行时间

是否可以在GAE上设置精确或至少近似的计划任务执行时间,该任务将以指定的速率(5/s,100/h)执行?

python google-app-engine batch-processing task-queue

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

批量封锁 - 替代品

我想知道我是否可以使用下面相同的代码并进行一些小的更改来添加我需要的功能.它的写法:

::::Set WshShell = CreateObject("WScript.Shell")
::::WshShell.SendKeys "{capslock}"
Set WshShell = Nothing
findstr "^::::" "%~sf0" > temp.vbs & Cscript //nologo temp.vbs & del temp.vbs
echo Capslock is off
Run Code Online (Sandbox Code Playgroud)

结果:

  • 如果已经关闭,它会激活CAPS ON
  • 如果CAPS已经打开,它会激活CAPS OFF

我想把它改成总是OFF.如何在代码中进行这种轻微修正?

谢谢

vbscript batch-file batch-processing

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

Spring Batch:如何监视当前正在运行的作业并在jsp页面上显示进度

我想知道如何监视当前正在运行的批处理作业的状态.我的作业基本上是处理文件夹的一些默认步骤,所以我想逐步向用户显示进度.我正在使用TaskletsDB Job Repository.解释一些实现这一目标的示例代码将更有帮助.
谢谢.

java spring-mvc batch-processing spring-batch

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

使用单个命令移动和重命名文件

我在CMD中寻找单个命令,这将允许我重命名文件并将文件从一个目录移动到另一个目录.这是我的任务:使用新扩展名.doc重命名TEST文件夹中的所有.txt文件,然后将它们移动到TEST2文件夹.提前致谢.

command-line command cmd batch-processing

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

检查当前文件夹是否为根目录

我正在编写一个批处理文件,它从一个特定的目录开始 - 比如说C:\FirstFolder\SecondFolder\ThirdFolder\- 并且应该在每个文件夹中执行一个任务,然后上去一个文件夹,直到它到达根目录(C:\).

这里的问题是我们正在处理的驱动器不一定是C:\,它可能是任何驱动器号,所以我不能只检查是否%cd%等于C:\告诉程序停止遍历每个目录.

有人能帮忙吗?

batch-file batch-processing

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

如何在BATCH中使用已运行的Total Commander打开文件夹?

我想创建一个BATCH文件,该文件使用Total Commander 打开一个指定的文件夹。但是有两种可能性:

  1. 如果没有运行的TotalCommander->一个新的 TotalCommander将启动并打开文件夹
  2. 如果已经运行了 TotalCommander->使用运行中的TC打开文件夹,并且不要启动新的TotalCommander

我有一个代码,该代码使用TotalCommander打开该文件夹,但是它总是启动一个新的TotalCommander,而不使用正在运行的文件夹:

@echo off
SET totalc="C:\totalcmd\TOTALCMD.EXE"
set folder="C:\temp"
ECHO opening %folder% with %totalc%
%totalc% %folder%
ECHO opened
Run Code Online (Sandbox Code Playgroud)

有什么解决方案可以解决吗?

batch-file batch-processing total-commander

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

Cassandra:具有条件的批处理不能跨越多个表

我试图通过使用Cassandra cpp-driver对批处理内的不同表执行3个条件插入:

BEGIN BATCH 
insert into table1 values (...) IF NOT EXISTS 
insert into table2 values (...) IF NOT EXISTS 
insert into table3 values (...) IF NOT EXISTS 
APPLY BATCH
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Batch with conditions cannot span multiple tables
Run Code Online (Sandbox Code Playgroud)

如果在Cassandra中无法实现上述目标,那么将多个条件插入作为事务执行并确保所有成功或全部失败的替代方法是什么?

batch-processing cassandra nosql datastax cassandra-3.0

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

在DynamoDB中更新多个记录

如何在单个查询中更新DynamoDB中的多个记录?我有一个csv文件作为基于csv文件的输入我必须在DB中更新多个记录(只有一个属性).有没有可用的API?或者这可以使用批处理(Spring-batch)来完成?

batch-processing amazon-dynamodb

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

batch:ampersand导致findstr的问题

这部分工作正常,直到文件名中有一个&符号,在这种情况下它会完全崩溃我的脚本.

echo %filename% | findstr /i /b /c:"%name% (%year%)"
Run Code Online (Sandbox Code Playgroud)

我不能只是将文件名放入引号,因为我需要在开头找到字符串.那我怎么能两个都做?

batch-file findstr batch-processing

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