nope/test/testAmqpClient.ts

70 lines
1.6 KiB
TypeScript
Raw Normal View History

/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @create date 2021-06-04 19:17:56
2021-08-17 15:52:46 +00:00
* @modify date 2021-08-11 17:38:57
* @desc [description]
*/
import "reflect-metadata";
import { promisify } from "util";
import { runNopeBackend } from "../lib/cli/runNopeBackend";
2020-11-09 14:28:09 +00:00
import { getNopeLogger } from "../lib/logger/getLogger";
import { NopeObservable } from "../lib/observables/nopeObservable";
const sleep = promisify(setTimeout);
2021-08-17 15:52:46 +00:00
const logger = getNopeLogger("dispatcher", "info");
2020-09-30 06:25:03 +00:00
const main = async () => {
2020-09-30 06:25:03 +00:00
logger.info("Creating Dispatcher");
2021-08-17 15:52:46 +00:00
const dispatcher = (await runNopeBackend({ skipLoadingConfig: true, channel: "amqp", log: "info" })).dispatcher;
logger.info("Dispatcher ready");
2020-09-30 06:25:03 +00:00
const max = 10000;
await sleep(1000);
const promises = [];
2021-08-17 15:52:46 +00:00
let c = 0;
2020-09-30 06:25:03 +00:00
// Call Tasks Parallel!
const start = Date.now();
2020-09-30 06:25:03 +00:00
while (c < 10) {
try {
logger.info("Dispatching Call", c);
2021-08-17 15:52:46 +00:00
promises.push(dispatcher.performCall("func", [c++]));
} catch (e) {
logger.error(e);
2021-08-17 15:52:46 +00:00
}
2020-09-30 06:25:03 +00:00
}
const dispatched = Date.now();
// Now Wait for all Open Task
await Promise.all(promises);
const end = Date.now();
2021-08-17 15:52:46 +00:00
logger.info("Dispatching took", dispatched - start, "[ms]");
logger.info("Calling took", end - start, "[ms]");
2020-09-30 06:25:03 +00:00
await sleep(500);
2020-11-09 14:28:09 +00:00
const obs01 = new NopeObservable<number>();
2020-09-30 06:25:03 +00:00
dispatcher.registerObservable(obs01, {
mode: "publish",
topic: "test.var",
schema: {}
2020-09-30 06:25:03 +00:00
});
obs01.setContent(1200);
await sleep(500);
2020-09-30 06:25:03 +00:00
c = 0;
while (c < max) {
obs01.setContent(c++);
}
};
2020-09-30 06:25:03 +00:00
main();