123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // Test Observable //
- import mongoose, { Model } from "mongoose";
- import { Subject, map } from "rxjs";
- const used = process.memoryUsage();
- let MongooseConnection: mongoose.Connection
- let connectionStatus = 0
- let mongoStorage: any = {
- type: `MongoDB`,
- url: `mongodb://192.168.100.59:27017/fromEnzo`
- }
- let data: any[] = []
- // Conect to designated storage destination
- async function connectMongo(storage: Storage) {
- return new Promise((resolve, reject) => {
- try {
- console.log(`Connecting to ${storage.url}`)
- MongooseConnection = mongoose.createConnection(storage.url)
- connectionStatus = 1
- resolve(connectionStatus)
- }
- catch (error) {
- connectionStatus = 0
- console.error('An error occurred while connecting to the database:', error);
- setTimeout(() => {
- connectMongo(storage).then(() => {
- resolve(connectionStatus)
- })
- console.log(`Reconnecting...`)
- }, 3000);
- }
- })
- }
- async function getMongoData(storage: Storage) {
- return new Promise<any>(async (resolve, reject) => {
- await connectMongo(storage);
- const Message: Model<any> = MongooseConnection.model('Message', require('../types/message.schema'));
- try {
- data = await Message.find().limit(10000)
- resolve(data)
- } catch (err) {
- console.error(err);
- }
- })
- }
- let testSubject: Subject<any> = new Subject()
- getMongoData(mongoStorage).then((data) => {
- data.forEach(element => {
- testSubject.next(element)
- // console.log(`Memory usage: ${used.heapUsed / 1024 / 1024} MB`);
- })
- })
- let count = 0
- testSubject.subscribe({
- next: (e) => {
- count++
- console.log(count)
- }
- });
- let pipedObs = testSubject.pipe(
- map((element) => {
- let finalResponse: any = {
- message: 'Piped element'
- }
- return finalResponse
- })
- )
- pipedObs.subscribe(element => {
- count ++
- console.log(element.message + count)
- })
|