我正在与一个安排约会的系统连接。目的地系统不允许提前30天安排约会,但源系统可以随时发送约会(经常超过30天)。我如何延迟信息的发送,直到它在30天的窗口内?
s4n0splo1#
创建两个通道。让第一个通道将文件写入磁盘,并将"lastWriteTime"设置为您希望传递消息的日期。第二个通道应从该目录读取,并使用"Check File Time"选项仅过滤具有历史日期的消息。
channelMap.put('deliverAfter', msg['SCH']['SCH.11']['SCH.11.1'].toString());
连接器类型:Javascript编写器
var deliverAfter = DateUtil.getDate('yyyyMMddHHmm', $('deliverAfter')); var path = 'c:/data/queue/' + connectorMessage.getMessageId(); org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File(path), connectorMessage.getEncodedData(), 'UTF-8'); java.nio.file.Files.setLastModifiedTime(java.nio.file.Paths.get(path), java.nio.file.attribute.FileTime.fromMillis(deliverAfter.getTime()));
路径:c:/data/queue/处理后操作:删除检查文件期限:是的文件期限(毫秒):1000编码:UTF-8
c:/data/queue/
1条答案
按热度按时间s4n0splo1#
创建两个通道。让第一个通道将文件写入磁盘,并将"lastWriteTime"设置为您希望传递消息的日期。第二个通道应从该目录读取,并使用"Check File Time"选项仅过滤具有历史日期的消息。
通道1目标1:
转换器Javascript:
目的地设置:
连接器类型:Javascript编写器
通道2:
源阅读器设置:
路径:
c:/data/queue/
处理后操作:删除
检查文件期限:是的
文件期限(毫秒):1000
编码:UTF-8