使用<chunk time-limit="10"...>
有一种简单的方法?
我可以将A time-limit 与我的自定义 CheckPointAlgorithm ?
简短答案:
最简单的方法可能是
<chunk time-limit="10" item-count="999999">
其中999,999只是一个永远不会被击中的大数字。
背景
解释为什么,这是对"我如何使用JSR 352内置检查点?
有两种方法可以在JSR 352中配置检查点,这是两个检查点策略。
在JSL(XML)
中这是默认的"内置"行为。
在Java中
由Application的CheckPointAlgorithm Ingl控制,并通过 Checkpoint-Policy =&quot ='custom' in JSl。
内置策略基于项目或时间,以"命中"为准。第一个
了解内置检查点策略的基本要点是,它基于项目计数或时间限制,以先到者为准。
示例
<chunk>
10个项目(默认)
<chunk item-count="25">
25个项目之后
<chunk time-limit="10">
10秒或10个项目(再次,项目计数默认值),以先到者为准。
<chunk time-limit="10" item-count="25">
25个项目或10秒钟后,以先到者为准。
<chunk time-limit="10" item-count="999999">
在999,999个项目或10秒之后,以先到者为准(因此,除了最简单的处理之外,这实际上意味着10秒后,您可以在必要时使此数字更大)。
><chunk checkpoint-policy="custom">
通过 CheckPointAlgorithm 在您自己的应用程序代码中实现,使用方法 isreadyToCheckPoint()也可以选择超时),并引用了:
:<chunk checkpoint-policy="custom"> <checkpoint-algorithm ref="myCustomCheckpointAlgorithm">
讨论
因此, time-limit 默认为'0',该定义为"无限时间"。或"请勿在时间上检查点"。另一方面, item-count 默认为'10',而'0'的项目计数的类似行为是未定义的。
因此,基于一些秒数的检查点的最佳方法只是将项目计数设置为高度,以至于无关紧要,这在现实世界中通常并不难。
这是上面的示例#5。
您无法将内置控件与您的"自定义"相结合。算法!
-
<chunk checkpoint-policy="custom" time-limit="5">
时间限制被忽略!
您不能将自定义算法与任何"项目"结合起来。检查点策略属性(这些属性只是忽略)。您不能根据我的自定义算法或第5秒钟(以先到者为准)说检查点。
-
<chunk checkpoint-policy="custom" item-count="500">
忽略了项目计数!
与上一个示例相同。
警告
周围有一些较旧的,过时的例子,例如本文还包含" commit-interval"的" commit interval"one_answers"时间"检查点策略。这些是不是并入最终1.0规格中。
结束思想
上面的解决方案的" hack"不太明确。质量。
也许规范应该定义item-count="0"
表示的行为,"基于项目计数的绝不检查点",这将允许更简单的解决方案。也许应该考虑使用1.1更新。