FileWritingMessageHandler - 向文件添加时间戳后缀
FileWritingMessageHandler - adding timestamp suffix to file
我在使用 spring 集成向文件添加时间戳后缀时遇到问题。
这是我的 FileWritingMessageHandler bean:
public FileWritingMessageHandler getFileWritingMessageHandler(String directory) {
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File(directory));
handler.setFileExistsMode(FileExistsMode.REPLACE);
handler.setExpectReply(false);
handler.setDeleteSourceFiles(true);
return handler;
}
我试过 handler.setTemporaryFileSuffix(getCurrentTimeStamp());
但它什么也没做
我也尝试使用 DefaultFileNameGenerator :
DefaultFileNameGenerator suffixFileNameGenerator = new DefaultFileNameGenerator();
suffixFileNameGenerator.setHeaderName("id");
suffixFileNameGenerator.setExpression("payload.name + '"+ getCurrentTimeStamp()+"'");
handler.setFileNameGenerator(suffixFileNameGenerator);
添加了时间戳,但所有文件都相同。它们在不同时间进行处理,因此我想将该时间附加到文件名中。
我怎样才能做到这一点?
在此先感谢您的帮助
您获得了一次时间并将其作为文字添加到表达式中。
您需要在运行时获取时间戳而不是bean初始化时间;使用 T
运算符调用静态方法:
suffixFileNameGenerator.setExpression("payload.name + T(System).currentTimeMillis()");
我在使用 spring 集成向文件添加时间戳后缀时遇到问题。
这是我的 FileWritingMessageHandler bean:
public FileWritingMessageHandler getFileWritingMessageHandler(String directory) {
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File(directory));
handler.setFileExistsMode(FileExistsMode.REPLACE);
handler.setExpectReply(false);
handler.setDeleteSourceFiles(true);
return handler;
}
我试过 handler.setTemporaryFileSuffix(getCurrentTimeStamp());
但它什么也没做
我也尝试使用 DefaultFileNameGenerator :
DefaultFileNameGenerator suffixFileNameGenerator = new DefaultFileNameGenerator();
suffixFileNameGenerator.setHeaderName("id");
suffixFileNameGenerator.setExpression("payload.name + '"+ getCurrentTimeStamp()+"'");
handler.setFileNameGenerator(suffixFileNameGenerator);
添加了时间戳,但所有文件都相同。它们在不同时间进行处理,因此我想将该时间附加到文件名中。 我怎样才能做到这一点?
在此先感谢您的帮助
您获得了一次时间并将其作为文字添加到表达式中。
您需要在运行时获取时间戳而不是bean初始化时间;使用 T
运算符调用静态方法:
suffixFileNameGenerator.setExpression("payload.name + T(System).currentTimeMillis()");