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

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.

主站蜘蛛池模板: 建阳市| 东山县| 饶阳县| 西城区| 昆山市| 阜阳市| 芒康县| 安泽县| 嘉义市| 黄骅市| 仙居县| 龙里县| 宁波市| 云安县| 静海县| 西吉县| 濉溪县| 蒙自县| 任丘市| 长汀县| 连平县| 青铜峡市| 红安县| 甘肃省| 安国市| 阜阳市| 盱眙县| 临桂县| 肃北| 福海县| 肥乡县| 乌兰察布市| 凤庆县| 连州市| 龙山县| 吉水县| 新干县| 霸州市| 女性| 尉犁县| 察雅县|