- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这段代码中 想将 lastDate 保存在数组中并使用它来自动增加 startDate 和 endDate 属性值。但它不会生成流文件。我尝试修复它,但它无法创建 flofwile 我应该更改什么?
var OutputStreamCallback = Java.type("org.apache.nifi.processor.io.OutputStreamCallback");
var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
Date.prototype.isValid = function () {
return (Object.prototype.toString.call(this) === "[object Date]")
&& !isNaN(this.getTime());
};
var toDate = endDate.getValue(),
parameter1=parameter.getValue(),
count1=count.getValue();
function addDays(date, days) {
var result =new Date(date);
result.setDate(result.getDate() + days);
return formatDate(result);
}
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year, month, day].join('-');
}
var flowFile = session.create();
if(flowFile==null) {
var param = 8;
//count = Number(count1);
//var item = item + count1;
var endDate1 = addDays(toDate, param);
var startDate = toDate;
var arr = [];
arr.push(endDate1);
}
if(arr.length>1){
startDate1=arr.pop();
var endDate1 = addDays(startDate1, param);
var startDate = startDate1;
flowFile = session.putAttribute(flowFile, 'startDate', startDate1);
flowFile = session.putAttribute(flowFile, 'endDate', endDate1);
flowFile = session.putAttribute(flowFile, 'parameter', parameter);
}
else {
var param = 8;
var endDate1 = addDays(toDate, param);
var startDate = toDate;
flowFile = session.putAttribute(flowFile, 'count', 1);
flowFile = session.putAttribute(flowFile, 'startDate', startDate);
flowFile = session.putAttribute(flowFile, 'endDate', endDate1);
flowFile = session.putAttribute(flowFile, 'parameter', parameter1);
}
session.transfer(flowFile, REL_SUCCESS);
**它不会抛出异常但也不会生成流文件
最佳答案
您的代码的问题是您正在创建一个新的流文件,它保证不会为null
。然后评估 if (flowFile == null)
,它将始终返回 false
。您只需在该控制 block 内初始化变量 param
、endDate1
、startDate
和 arr
。其余代码不会按预期执行,并且您引用了尚 undefined variable (例如 parameter1
或 var toDate = endDate.getValue()
)。 flowFile
在传输时不会具有您期望的任何属性。
您不需要 ExecuteScript
处理器来执行这些操作。使用 UpdateAttribute
和 Apache NiFi 表达式语言来执行简单的日期数学运算。
如果这启动了一个流,使用一个 GenerateFlowFile
处理器来初始创建流文件并将它发送到 UpdateAttribute
。如果您从其他地方接收流文件,则只需要 UpdateAttribute
(但您需要两个;一个用于创建要添加的天数变量,一个用于执行数学运算 - - 或者如果该增量是常量,则只有一个并将变量引用更改为文字数字)。
定义了动态属性的处理器(template as GitHub Gist):
GenerateFlowFile:
startDate: ${now():toNumber()} <- puts the start date in "number of milliseconds since Jan 1, 1970 00:00:00.000 GMT" format
numberOfDaysToAdd: 8 <- or whatever static or dynamic value you want here
startDateFormatted: ${now():format("YYYY-MM-dd")} <- (optional) startDate in readable format if you need it
UpdateAttribute:
endDate: ${startDate:plus(${numberOfDaysToAdd:multiply(86400000)}):format("YYYY-MM-dd")} <- adds the number of milliseconds in a day * the number of days to the start date and formats it the way you want
您生成的流文件将如下所示:
o.a.n.processors.standard.LogAttribute LogAttribute[id=d06d3a2d-015e-1000-0820-087660238327] logging for flow file StandardFlowFileRecord[uuid=6d26df1a-fd52-407e-b549-0599d6ab3a21,claim=,offset=0,name=1636687405556264,size=0]
--------------------------------------------------
Standard FlowFile Attributes
Key: 'entryDate'
Value: 'Fri Sep 29 18:40:06 PDT 2017'
Key: 'lineageStartDate'
Value: 'Fri Sep 29 18:40:06 PDT 2017'
Key: 'fileSize'
Value: '0'
FlowFile Attribute Map Content
Key: 'endDate'
Value: '2017-10-07'
Key: 'filename'
Value: '1636687405556264'
Key: 'numberOfDaysToAdd'
Value: '8'
Key: 'path'
Value: './'
Key: 'startDate'
Value: '1506735606982'
Key: 'startDateFormatted'
Value: '2017-09-29'
Key: 'uuid'
Value: '6d26df1a-fd52-407e-b549-0599d6ab3a21'
--------------------------------------------------
这将比使用 ExecuteScript
更高效、更稳定。
关于javascript - 尼菲 : code in executeScript processor doesn't work properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482395/
\Processor(_Total)\% Processor Time 是什么意思。基本假设是什么? 描述:因为这是来自 WAD 性能表计数器的性能计数器;因为这是 Azure,是否有任何测量相同的假
我有一个执行有限差分计算的 CUDA 代码。该代码在 Tesla M2090 处理器上运行良好,没有错误。相同的代码会在 Tesla T10 处理器中导致大量错误。我的结果中有很多零。 有谁知道这两种
我有一个执行有限差分计算的 CUDA 代码。该代码在 Tesla M2090 处理器上运行良好,没有错误。相同的代码会在 Tesla T10 处理器中导致大量错误。我的结果中有很多零。 有谁知道这两种
我正在尝试让 QueryDSL 用于 Spring Roo 项目。 这是我的插件配置: com.mysema.maven maven-
关注 this question ,我正在尝试从 this tutorial 组装示例代码 #include "p10f200.inc" ; CONFIG __CONFIG _WDT_OFF
我是qemu的新手,我读到它允许单步模式仿真。这很有用,因为我试图在每个周期中转储物理内存的某些地址。不幸的是,qemu文档非常糟糕。我知道如何从qemu监视器启用单步模式,但是我不知道将要在每个步骤
我的问题来自 Mystical's answer .据我了解,您有一条分支指令,它可以转到另一条指令,例如 0x123344或者它可以继续执行。 如果分支预测器根据过去的模式从其中任何一个进行猜测,它
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
是否由地址总线的大小确定?如果是,那么8086是20位处理器吗?如果没有,为处理器分配8位,16位,32位之类的位的标准是什么? 最佳答案 它的定义不明确。正如xtofl所指出的,广义上讲,它是原子计
我一直在寻找用于撰写技术论文的文字处理器,但我还没有真正找到。拥有一个可以很好地处理数学表达式、代码和伪代码的编辑器真的很不错。我还没有找到一种效果很好的。 有人有什么建议吗? 最佳答案 我个人相信
这个问题看起来太简单了,但我是在看了几个 ppt 后才问的。 这两种方法都提高了指令吞吐量。 super 扩展几乎也总是利用管道。 super 缩放有多个执行单元,管道也是如此,还是我错了? 最佳答案
我目前正在 LogiSim 中开发 6502 的一个子集,在当前阶段我正在确定要实现哪些部分以及可以删除哪些部分。我的主要资源之一是Hanson's Block Diagram . 我目前正在尝试确定
我目前正在 LogiSim 中开发 6502 的子集。我的主要资源之一是Hanson's Block Diagram . 我正在尝试确定应该如何以及在哪里构建电路来更新处理器状态寄存器。在下面的处理器
我对 Apache-airflow 非常陌生,刚开始在 udemy (this course) 中学习类(class)。 我们已收到 YAML 文件,并被要求按照说明安装 Airflow 。我相信我已
对于大学中期项目,我必须设计一个可配置的处理器,用 VHDL 编写代码,然后在 Digilent 的 Spartan 3E FPGA 板上进行综合。我是一个初学者,所以你能指点我一些关于可配置处理器的
我正在尝试获取处理器信息,特别是像 这样的名称Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz . 搜索网络我发现了一个函数,它使用 for-each 为我提供了处理器
我们的项目中有两个注释,我想收集带注释的类并基于两个类列表创建合并的输出。 只用一个 Processor 可以吗?实例?我怎么知道 Processor每个带注释的类都调用了实例? 最佳答案 框架调用
我有以下插入语句: 插入 temp1 值 (test1, test2) 插入 temp2 值 (test3) 预期结果: 插入 temp1 值 (100, 200) 插入 temp2 值 (300)
C99 标准第 7.23.1 节第 1 段定义了几个“时间”术语: Many functions deal with a calendar time that represents the curre
我正在编写注释处理器,我需要 TreeTranslator.visitIdent 来放置静态方法调用。我想我应该使用 TreeMaker.Call 或 TreeMaker.Create,还是应该使用
我是一名优秀的程序员,十分优秀!