@Override public void handleEvent(Object event, boolean endOfBatch) throws Exception { if (event == null) { return; } ITupleExt tuple = (ITupleExt) event; int targetTask = tuple.getTargetTaskId(); IConnection conn = getConnection(targetTask); if (conn != null) { byte[] tupleMessage = null; try { //there might be errors when calling update_topology tupleMessage = serialize(tuple); } catch (Throwable e) { if (Utils.exceptionCauseIsInstanceOf(KryoException.class, e)) { throw new RuntimeException(e); } else { LOG.warn("serialize happened errors!!!", e); } } TaskMessage message = new TaskMessage(TaskMessage.CONTROL_MESSAGE, targetTask, tupleMessage); conn.sendDirect(message); } }
protected void serialize(KryoTupleSerializer serializer, Object event) { long start = serializeTimer.getTime(); try { ITupleExt tuple = (ITupleExt) event; int targetTaskId = tuple.getTargetTaskId(); IConnection conn = getConnection(targetTaskId); if (conn != null) { byte[] tupleMessage = serializer.serialize((TupleExt) tuple); //LOG.info("Task-{} sent msg to task-{}, data={}", task.getTaskId(), taskid, // JStormUtils.toPrintableString(tupleMessage)); TaskMessage taskMessage = new TaskMessage(taskId, targetTaskId, tupleMessage); conn.send(taskMessage); } else { LOG.error("Can not find connection for task-{}", targetTaskId); } } finally { if (MetricUtils.metricAccurateCal) { serializeTimer.updateTime(start); } } } }
@Override public void handleEvent(Object event, boolean endOfBatch) throws Exception { if (event == null) { return; } ITupleExt tuple = (ITupleExt) event; int targetTask = tuple.getTargetTaskId(); IConnection conn = getConnection(targetTask); if (conn != null) { byte[] tupleMessage = null; try { //it maybe happened errors when update_topology tupleMessage = serialize(tuple); } catch (Throwable e) { if (Utils.exceptionCauseIsInstanceOf(KryoException.class, e)) { throw new RuntimeException(e); } else { LOG.warn("serialize happened errors!!!", e); } } TaskMessage message = new TaskMessage((short) TaskMessage.CONTROL_MESSAGE, targetTask, tupleMessage); conn.send(message); } }
protected void serialize(KryoTupleSerializer serializer, Object event){ long start = serializeTimer.getTime(); try { ITupleExt tuple = (ITupleExt) event; int targetTaskid = tuple.getTargetTaskId(); IConnection conn = getConnection(targetTaskid); if (conn != null) { byte[] tupleMessage = serializer.serialize((TupleExt) tuple); //LOG.info("Task-{} sent msg to task-{}, data={}", task.getTaskId(), taskid, JStormUtils.toPrintableString(tupleMessage)); TaskMessage taskMessage = new TaskMessage(targetTaskid, tupleMessage); conn.send(taskMessage); } else { LOG.error("Can not find connection for task-{}", targetTaskid); } } finally { if (MetricUtils.metricAccurateCal) serializeTimer.updateTime(start); } } }