@Test public void testDeployWorkerFromTestThread() throws Exception { MyVerticle verticle = new MyVerticle(); vertx.deployVerticle(verticle, new DeploymentOptions().setWorker(true), ar -> { assertDeployment(1, verticle, null, ar); assertTrue(verticle.startContext.isWorkerContext()); vertx.undeploy(ar.result(), ar2 -> { assertTrue(ar2.succeeded()); assertEquals(verticle.startContext, verticle.stopContext); testComplete(); }); }); await(); }
@Test public void testDeployFromTestThread() throws Exception { MyVerticle verticle = new MyVerticle(); vertx.deployVerticle(verticle, ar -> { assertDeployment(1, verticle, null, ar); assertFalse(verticle.startContext.isWorkerContext()); assertTrue(verticle.startContext.isEventLoopContext()); testComplete(); }); await(); }
@Override public void start() throws Exception { assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); HttpServer server1 = vertx.createHttpServer(new HttpServerOptions() .setHost(HttpTestBase.DEFAULT_HTTP_HOST).setPort(HttpTestBase.DEFAULT_HTTP_PORT)); server1.requestHandler(req -> { assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); Buffer buf = Buffer.buffer(); }); }).listen(onSuccess(s -> { assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); HttpClient client = vertx.createHttpClient(); client.put(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/blah", onSuccess(resp -> { assertEquals(200, resp.statusCode()); assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); resp.handler(buf -> {
@Test public void testDeployWorkerWithConfig() throws Exception { MyVerticle verticle = new MyVerticle(); JsonObject conf = generateJSONObject(); vertx.deployVerticle(verticle, new DeploymentOptions().setConfig(conf).setWorker(true), ar -> { assertDeployment(1, verticle, conf, ar); assertTrue(verticle.startContext.isWorkerContext()); assertFalse(verticle.startContext.isEventLoopContext()); vertx.undeploy(ar.result(), ar2 -> { assertTrue(ar2.succeeded()); assertEquals(verticle.startContext, verticle.stopContext); testComplete(); }); }); await(); }
/** * Is the current context a worker context? * <p> * NOTE! when running blocking code using {@link io.vertx.rxjava.core.Vertx#executeBlocking} from a * standard (not worker) verticle, the context will still an event loop context and this * will return false. * @return true if the current context is a worker context, false otherwise */ public boolean isWorkerContext() { boolean ret = delegate.isWorkerContext(); return ret; }
/** * Is the current context a worker context? * <p> * NOTE! when running blocking code using {@link io.vertx.rxjava.core.Vertx#executeBlocking} from a * standard (not worker) verticle, the context will still an event loop context and this * will return false. * @return true if the current context is a worker context, false otherwise */ public boolean isWorkerContext() { boolean ret = delegate.isWorkerContext(); return ret; }
@Test public void testDeployWorkerFromTestThread() throws Exception { MyVerticle verticle = new MyVerticle(); vertx.deployVerticle(verticle, new DeploymentOptions().setWorker(true), ar -> { assertDeployment(1, verticle, null, ar); assertTrue(verticle.startContext.isWorkerContext()); vertx.undeploy(ar.result(), ar2 -> { assertTrue(ar2.succeeded()); assertEquals(verticle.startContext, verticle.stopContext); testComplete(); }); }); await(); }
@Override public void start() throws Exception { assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); HttpServer server1 = vertx.createHttpServer(new HttpServerOptions() .setHost(HttpTestBase.DEFAULT_HTTP_HOST).setPort(HttpTestBase.DEFAULT_HTTP_PORT)); server1.requestHandler(req -> { assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); Buffer buf = Buffer.buffer(); }); }).listen(onSuccess(s -> { assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); HttpClient client = vertx.createHttpClient(); client.put(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/blah", resp -> { assertEquals(200, resp.statusCode()); assertTrue(Vertx.currentContext().isWorkerContext()); assertTrue(Context.isOnWorkerThread()); resp.handler(buf -> {
@Test public void testDeployFromTestThread() throws Exception { MyVerticle verticle = new MyVerticle(); vertx.deployVerticle(verticle, ar -> { assertDeployment(1, verticle, null, ar); assertFalse(verticle.startContext.isMultiThreadedWorkerContext()); assertFalse(verticle.startContext.isWorkerContext()); assertTrue(verticle.startContext.isEventLoopContext()); testComplete(); }); await(); }
@Test public void testDeployWorkerWithConfig() throws Exception { MyVerticle verticle = new MyVerticle(); JsonObject conf = generateJSONObject(); vertx.deployVerticle(verticle, new DeploymentOptions().setConfig(conf).setWorker(true), ar -> { assertDeployment(1, verticle, conf, ar); assertFalse(verticle.startContext.isMultiThreadedWorkerContext()); assertTrue(verticle.startContext.isWorkerContext()); assertFalse(verticle.startContext.isEventLoopContext()); vertx.undeploy(ar.result(), ar2 -> { assertTrue(ar2.succeeded()); assertEquals(verticle.startContext, verticle.stopContext); testComplete(); }); }); await(); }
@Test public void testDeployMultithreadedWorkerWithConfig() throws Exception { MyVerticle verticle = new MyVerticle(); JsonObject conf = generateJSONObject(); vertx.deployVerticle(verticle, new DeploymentOptions().setConfig(conf).setWorker(true).setMultiThreaded(true), ar -> { assertDeployment(1, verticle, conf, ar); assertTrue(verticle.startContext.isMultiThreadedWorkerContext()); assertTrue(verticle.startContext.isWorkerContext()); assertFalse(verticle.startContext.isEventLoopContext()); vertx.undeploy(ar.result(), ar2 -> { assertTrue(ar2.succeeded()); assertEquals(verticle.startContext, verticle.stopContext); testComplete(); }); }); await(); }
public static Context getContext(Vertx vertx) { Context context = vertx.getOrCreateContext(); if (context.isEventLoopContext()) { logger.trace("Context attached to Event Loop"); } else if (context.isWorkerContext()) { logger.trace("Context attached to Worker Thread"); } else if (context.isMultiThreadedWorkerContext()) { logger.trace("Context attached to Worker Thread - multi threaded worker"); } else if (! Context.isOnVertxThread()) { logger.trace("Context not attached to a thread managed by vert.x"); } return context; } }
public static Context getContext(Vertx vertx) { Context context = vertx.getOrCreateContext(); if (context.isEventLoopContext()) { logger.trace("Context attached to Event Loop"); } else if (context.isWorkerContext()) { logger.trace("Context attached to Worker Thread"); } else if (context.isMultiThreadedWorkerContext()) { logger.trace("Context attached to Worker Thread - multi threaded worker"); } else if (! Context.isOnVertxThread()) { logger.trace("Context not attached to a thread managed by vert.x"); } return context; } }
worker = context.isWorkerContext() || context.isMultiThreadedWorkerContext();