官术网_书友最值得收藏!

IdleTimeHandler

Sometimes, an operator is idle, which means there is no work to do because no tuples are available on the input stream for processing (or in the case of an input operator, no data is produced on the output port(s)). Some operators could make use of the idle time to do bookkeeping work, such as maintaining caches or other other background processing. Apex provides the IdleTimeHandler interface that operators may implement to use the extra CPU time in the engine managed operator thread.

  • handleIdleTime: This is called whenever the engine detects that the operator isn't doing any processing. If the implementation also doesn't have any work to do, it should block the call for a short duration to prevent a busy loop, as the method is called again and again until the operator is no longer idle.

This section was an introduction to developing custom operators. Note that, in many cases, it isn't necessary to develop a complete custom operator from scratch. Often it is sufficient to extend an existing operator with a few overrides or configure a generic operator with the desired behavior. An example would be the FunctionOperator that accepts a user defined function (equivalent of Java 8 Lambda Expression) as property. It eliminates the needs to write boilerplate code that deals with operator ports and life cycle methods, which are in many cases not required to express the business logic. The high-level Java API, which was introduced in the first chapter, provides the same benefit of concise specification of custom logic for those cases where the predefined primitive functions are sufficient.

For more information about custom operator development, please refer to http://apex.apache.org/docs/apex/operator_development/#developing-custom-operators.

主站蜘蛛池模板: 宣恩县| 五台县| 沁阳市| 恭城| 图木舒克市| 六安市| 龙门县| 德州市| 永康市| 顺义区| 晋中市| 嘉义市| 衡山县| 怀宁县| 抚松县| 城市| 郴州市| 常熟市| 肥西县| 海淀区| 福鼎市| 云阳县| 平湖市| 山东| 剑河县| 镶黄旗| 从化市| 江华| 西乌| 栾城县| 瑞安市| 英山县| 巴马| 腾冲县| 吉木萨尔县| 南宫市| 上杭县| 商水县| 隆昌县| 青龙| 蒙自县|