code: private void handleRecode(Unit unit, UnitRequest msg, UnitResponse out, Object beforeReturn) {
          String msgId = MsgIdHolder.get();
          String cacheKey = "RecordMessageId_" + msgId;
          CacheObjectUtil
                  .exists(cacheKey)
                  .subscribe(existed -> {
                      if (existed) {
                          CacheObjectUtil.set(cacheKey, msgId, 60 * 15 * 1000);
                          SourceBody source = getSource(unit, msg);
                          String sourceBody = getSourceBody(msg);
                          Map<String, Object> map = new HashMap<>();
                          map.put("source", source.getSource());
                          map.put("sourceReqBody", sourceBody);
                          map.put("sourceClassPath", source.getPath());
                          map.put("msgId", msgId);
                          map.put("reqTime", String.valueOf(beforeReturn.toString()));
                          SingleRxXian.call("recorder", "actionRecord", map);
                      }
                  });
      }
docs: 处理动作录制