我有一个外部程序,一个电子书转换器,将.epub转换为.txt。 这个转换器请求一个文件作为输入,另一个文件作为输出,文件名在这里很重要,因为扩展用于确定应该进行哪个转换,也是我在测试时看到的,程序正在对输入文件执行搜索。所以这些禁区预先使用命名管道或SDTIN重定向。
对于另一个项目,或者至少是一个POC,我将必须封装一个现有的工具包,其工作方式与上面相同,并重新创建Nifi之间的工作流程。
短期内,无法编写自定义处理器。
那我该怎么做呢?
我找到了几个可能的解决方案:
创建一个将文件放在临时位置的PutFile处理器,将其与executeStreamCommand链接,执行外部命令并将输出放在临时位置并使用fetchFileProcessor对其进行链接。但这里的问题可能是我必须找到一种清理临时文件的方法。
另一个解决方案是创建一个与ExecuteScript一起使用的脚本来执行以下操作:使用基于属性的文件名将流文件写入磁盘,执行外部命令,将输出文件读取到流文件并执行一些清理。但是从我发现的情况来看,从这个处理器写入磁盘并不容易,对吧?
那么我应该去哪个方向,任何建议?
答案 0 :(得分:2)
你走在正确的轨道上。我想你可以做一系列处理器,如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Tanggal</th>
<th>Judul Pekerjaan</th>
<th>Deskripsi</th>
<th>Level</th>
<th>Category</th>
<th>Severity</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>1 May 2017</td>
<td>Satu</td>
<td>Satu</td>
<td>5</td>
<td>Lorem</td>
<td>Ipsum</td>
</tr>
<tr>
<td>2</td>
<td>2 May 2017</td>
<td>Dua</td>
<td>Dua</td>
</tr>
<tr>
<td>3</td>
<td>3 May 2017</td>
<td>Tiga</td>
<td>Tiga</td>
</tr>
<tr>
<td>3</td>
<td>3 May 2017</td>
<td>Tiga</td>
<td>Tiga</td>
</tr>
<tr>
<td>2</td>
<td>2 May 2017</td>
<td>Dua</td>
<td>Dua</td>
</tr>
<tr>
<td>3</td>
<td>3 May 2017</td>
<td>Tiga</td>
<td>Tiga</td>
</tr>
<tr>
<td>3</td>
<td>3 May 2017</td>
<td>Tiga</td>
<td>Tiga</td>
</tr>
</tbody>
</table>
Completion Strategy
来清理转换后的文件。