本文介绍Java如何实现并应用函数实例生命周期回调方法。
使用说明
当您实现并配置函数实例生命周期回调后,函数计算将在相关实例生命周期事件发生时调用对应的回调程序。函数实例生命周期涉及Initializer和PreStop回调。
- Initializer回调
Initializer回调在函数实例启动成功后,请求处理程序(Handler)之前执行。使用Initializer回调需要继承com.ctg.faas.runtime.FunctionInitializer接口,并实现该接口的initialize方法。 - PreStop回调
PreStop回调在函数实例销毁前执行。使用PreStop回调需要继承com.ctg.faas.runtime.PreStopHandler接口,并实现该接口的preStop方法。
Initializer回调和PreStop回调的方法签名一样,入参只有一个context参数,提供在调用时的运行上下文信息。一个包含回调方法的示例如下:
package example;
import com.ctg.faas.runtime.Context;
import com.ctg.faas.runtime.FunctionInitializer;
import com.ctg.faas.runtime.PojoRequestHandler;
import com.ctg.faas.runtime.PreStopHandler;
public class PojoHandler implements PojoRequestHandler<String, String>, FunctionInitializer, PreStopHandler {
@Override
public String handleRequest(String input, Context context) {
context.getLogger().info("Hello:" + input);
return input;
}
@Override
public void initialize(Context context) {
context.getLogger().info("initialize...");
}
@Override
public void preStop(Context context) {
context.getLogger().info("preStop...");
}
}