@514labs/moose-lib 0.6.267-ci-2-g580f80e4 → 0.6.267-ci-3-g2d546d7e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -962,8 +962,15 @@ var runApis = async (config) => {
962
962
  const apisCluster = new Cluster({
963
963
  maxWorkerCount: (config.workerCount ?? 0) > 0 ? config.workerCount : void 0,
964
964
  workerStart: async () => {
965
+ const workerInfo = `[Worker ${process.pid}]`;
966
+ const startTime = Date.now();
967
+ console.log(`${workerInfo} workerStart: beginning initialization`);
965
968
  let temporalClient;
966
969
  if (config.temporalConfig) {
970
+ const temporalStart = Date.now();
971
+ console.log(
972
+ `${workerInfo} workerStart: initializing Temporal client...`
973
+ );
967
974
  temporalClient = await getTemporalClient(
968
975
  config.temporalConfig.url,
969
976
  config.temporalConfig.namespace,
@@ -971,29 +978,51 @@ var runApis = async (config) => {
971
978
  config.temporalConfig.clientKey,
972
979
  config.temporalConfig.apiKey
973
980
  );
981
+ console.log(
982
+ `${workerInfo} workerStart: Temporal client initialized in ${Date.now() - temporalStart}ms`
983
+ );
974
984
  }
985
+ const clickhouseStart = Date.now();
986
+ console.log(
987
+ `${workerInfo} workerStart: initializing ClickHouse client...`
988
+ );
975
989
  const clickhouseClient = getClickhouseClient(
976
990
  toClientConfig(config.clickhouseConfig)
977
991
  );
992
+ console.log(
993
+ `${workerInfo} workerStart: ClickHouse client initialized in ${Date.now() - clickhouseStart}ms`
994
+ );
978
995
  let publicKey;
979
996
  if (config.jwtConfig?.secret) {
980
- console.log("Importing JWT public key...");
997
+ const jwtStart = Date.now();
998
+ console.log(`${workerInfo} workerStart: importing JWT public key...`);
981
999
  publicKey = await jose.importSPKI(config.jwtConfig.secret, "RS256");
1000
+ console.log(
1001
+ `${workerInfo} workerStart: JWT key imported in ${Date.now() - jwtStart}ms`
1002
+ );
982
1003
  }
983
- const server = http2.createServer(
984
- await createMainRouter(
985
- publicKey,
986
- clickhouseClient,
987
- temporalClient,
988
- config.apisDir,
989
- config.enforceAuth,
990
- config.isDmv2,
991
- config.jwtConfig
992
- )
1004
+ const routerStart = Date.now();
1005
+ console.log(`${workerInfo} workerStart: creating main router...`);
1006
+ const router = await createMainRouter(
1007
+ publicKey,
1008
+ clickhouseClient,
1009
+ temporalClient,
1010
+ config.apisDir,
1011
+ config.enforceAuth,
1012
+ config.isDmv2,
1013
+ config.jwtConfig
1014
+ );
1015
+ console.log(
1016
+ `${workerInfo} workerStart: main router created in ${Date.now() - routerStart}ms`
993
1017
  );
1018
+ const serverStart = Date.now();
1019
+ console.log(`${workerInfo} workerStart: creating HTTP server...`);
1020
+ const server = http2.createServer(router);
994
1021
  const port = config.proxyPort !== void 0 ? config.proxyPort : 4001;
995
1022
  server.listen(port, "localhost", () => {
996
- console.log(`Server running on port ${port}`);
1023
+ console.log(
1024
+ `${workerInfo} Server running on port ${port} (total startup: ${Date.now() - startTime}ms)`
1025
+ );
997
1026
  });
998
1027
  return server;
999
1028
  },
@@ -1624,15 +1653,43 @@ var dumpMooseInternal = async () => {
1624
1653
  var indexLoadState = "unloaded";
1625
1654
  var indexLoadPromise = null;
1626
1655
  var loadIndex = async () => {
1656
+ const workerInfo = `[Worker ${process2.pid}]`;
1627
1657
  if (indexLoadState === "loaded") {
1658
+ console.log(
1659
+ `${workerInfo} loadIndex: already loaded, returning immediately`
1660
+ );
1628
1661
  return;
1629
1662
  }
1630
1663
  if (indexLoadState === "loading" && indexLoadPromise) {
1664
+ console.log(
1665
+ `${workerInfo} loadIndex: already loading, waiting for completion`
1666
+ );
1667
+ return indexLoadPromise;
1668
+ }
1669
+ console.log(`${workerInfo} loadIndex: starting load process`);
1670
+ const startTime = Date.now();
1671
+ const delay = Math.random() * 500;
1672
+ console.log(
1673
+ `${workerInfo} loadIndex: waiting ${delay.toFixed(0)}ms to stagger load`
1674
+ );
1675
+ await new Promise((resolve2) => setTimeout(resolve2, delay));
1676
+ if (indexLoadState === "loading" && indexLoadPromise) {
1677
+ console.log(
1678
+ `${workerInfo} loadIndex: another worker started loading during delay, waiting`
1679
+ );
1631
1680
  return indexLoadPromise;
1632
1681
  }
1682
+ if (indexLoadState === "loaded") {
1683
+ console.log(
1684
+ `${workerInfo} loadIndex: loaded by another worker during delay`
1685
+ );
1686
+ return;
1687
+ }
1633
1688
  indexLoadState = "loading";
1634
1689
  indexLoadPromise = (async () => {
1635
1690
  try {
1691
+ console.log(`${workerInfo} loadIndex: clearing registry...`);
1692
+ const clearStart = Date.now();
1636
1693
  const registry = getMooseInternal();
1637
1694
  registry.tables.clear();
1638
1695
  registry.streams.clear();
@@ -1641,15 +1698,35 @@ var loadIndex = async () => {
1641
1698
  registry.sqlResources.clear();
1642
1699
  registry.workflows.clear();
1643
1700
  registry.webApps.clear();
1701
+ console.log(
1702
+ `${workerInfo} loadIndex: registry cleared in ${Date.now() - clearStart}ms`
1703
+ );
1704
+ console.log(`${workerInfo} loadIndex: clearing require cache...`);
1705
+ const cacheStart = Date.now();
1644
1706
  const appDir = `${process2.cwd()}/${getSourceDir()}`;
1645
1707
  Object.keys(__require.cache).forEach((key) => {
1646
1708
  if (key.startsWith(appDir)) {
1647
1709
  delete __require.cache[key];
1648
1710
  }
1649
1711
  });
1712
+ console.log(
1713
+ `${workerInfo} loadIndex: require cache cleared in ${Date.now() - cacheStart}ms`
1714
+ );
1715
+ console.log(`${workerInfo} loadIndex: requiring index.ts...`);
1716
+ const requireStart = Date.now();
1650
1717
  __require(`${process2.cwd()}/${getSourceDir()}/index.ts`);
1718
+ console.log(
1719
+ `${workerInfo} loadIndex: require completed in ${Date.now() - requireStart}ms`
1720
+ );
1651
1721
  indexLoadState = "loaded";
1722
+ console.log(
1723
+ `${workerInfo} loadIndex: total load time ${Date.now() - startTime}ms`
1724
+ );
1652
1725
  } catch (error) {
1726
+ console.error(
1727
+ `${workerInfo} loadIndex: FAILED after ${Date.now() - startTime}ms`,
1728
+ error
1729
+ );
1653
1730
  indexLoadState = "unloaded";
1654
1731
  indexLoadPromise = null;
1655
1732
  let hint;