в настоящее время использует
Vert.x
Как правило, сначала начните с жизненного цикла. иvertx-core
предоставляется по умолчаниюio.vertx.core.Launcher
выполнить.
События в жизненном цикле Vert.x
vertx-core
в упаковке есть одинinterface
, по имениVertxLifecycleHooks
, что позволяет подклассам средства запуска получать уведомления о различных событиях.
afterConfigParsed
Это
Vert.x
предстартовый крюк, на данном этапе,Vert.x
изOptions
также можно обновить. Входconfig
через командную строку-conf
переданные параметры.
void afterConfigParsed(JsonObject config);
beforeStartingVertx
и
afterConfigParsed
В основном то же самое, параметры также могут быть изменены. ввод какVertxOptions
.
void beforeStartingVertx(VertxOptions options);
afterStartingVertx
В настоящее время
Vert.x
Экземпляр уже создан.
void afterStartingVertx(Vertx vertx);
beforeDeployingVerticle
Verticle
перед развертыванием.
void beforeDeployingVerticle(DeploymentOptions deploymentOptions);
beforeStoppingVertx
Vert.x
до завершения экземпляра.
void beforeStoppingVertx(Vertx vertx);
afterStoppingVertx
Vert.x
После завершения экземпляра.
void afterStoppingVertx();
handleDeployFailed
Когда развертывание не удается.
void handleDeployFailed(Vertx vertx, String mainVerticle, DeploymentOptions deploymentOptions,
Throwable cause);
Лаунчер в Vert.x
Launcher
это пусковая установка Vert.x, которая реализуетVertxLifecycleHooks
, но реализация родственных методов в основном пустая, мы можем настроить свои собственныеLaucher
Обрабатывается для каждого этапа события.
/**
* 部署失败时,此方法会被调用。您可以重写此方法来自定义行为。
* 默认情况下,它关闭`vertx`实例。
*
* @param vertx vert.x 实例
* @param mainVerticle verticle
* @param deploymentOptions verticle 部署参数
* @param cause 部署失败的原因
*/
public void handleDeployFailed(Vertx vertx, String mainVerticle, DeploymentOptions deploymentOptions, Throwable cause) {
// 如果部署失败,默认行为是关闭Vert.x
vertx.close();
}
Пример пользовательского лаунчера
/**
* Description: 启动 Launcher .<br>
*
* @author m-xy
* Created By 2020/4/2 12:14
*/
public class MainLauncher extends Launcher {
private final static Logger logger = LoggerFactory.getLogger(MainLauncher.class);
public static void main(String[] args) {
System.setProperty(LOGGER_DELEGATE_FACTORY_CLASS_NAME, SLF4JLogDelegateFactory.class.getName());
new MainLauncher().dispatch(args);
}
/**
* 启动前准备阶段.
*
* @param options 参数
*/
@Override
public void beforeStartingVertx(VertxOptions options) {
logger.info("[Vert.x] Vert.x Options Ready");
options.setPreferNativeTransport(true);
super.beforeStartingVertx(options);
}
/**
* Vert.x启动完成阶段.
*
* @param vertx
*/
@Override
public void afterStartingVertx(Vertx vertx) {
logger.info("[Vert.x] Starting Vert.x (JVM running for you)");
super.afterStartingVertx(vertx);
}
/**
* Vert.x停止阶段.
*/
@Override
public void afterStoppingVertx() {
logger.info("[Vert.x] Stopping Vert.x (JVM running for you)");
super.afterStoppingVertx();
}
/**
* 部署失败时,此方法会被调用。您可以重写此方法来自定义行为。
* 默认情况下,它关闭`vertx`实例。
*
* @param vertx vert.x 实例
* @param mainVerticle verticle
* @param deploymentOptions verticle 部署参数
* @param cause 部署失败的原因
*/
@Override
public void handleDeployFailed(
Vertx vertx, String mainVerticle, DeploymentOptions deploymentOptions, Throwable cause) {
logger.error("[Vert.x] Start Vert.x Failed", cause);
super.handleDeployFailed(vertx, mainVerticle, deploymentOptions, cause);
}
}