Compare commits
No commits in common. "v3" and "main" have entirely different histories.
78
index.js
78
index.js
@ -1,78 +0,0 @@
|
|||||||
const amqp = require('amqplib'); // For RabbitMQ
|
|
||||||
const { v4: uuidv4 } = require('uuid'); // Generate unique IDs for messages
|
|
||||||
const winston = require('winston'); // For logging
|
|
||||||
|
|
||||||
// Configure logging using winston
|
|
||||||
const logger = winston.createLogger({
|
|
||||||
level: 'info',
|
|
||||||
format: winston.format.combine(
|
|
||||||
winston.format.timestamp(),
|
|
||||||
winston.format.printf(({ timestamp, level, message }) => `${timestamp} - ${level.toUpperCase()}: ${message}`)
|
|
||||||
),
|
|
||||||
transports: [
|
|
||||||
new winston.transports.Console(),
|
|
||||||
new winston.transports.File({ filename: 'app.log' })
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
// RabbitMQ Configuration
|
|
||||||
const RABBITMQ_URL = 'amqp://localhost';
|
|
||||||
const EXCHANGE_NAME = 'df.metadata';
|
|
||||||
const ROUTING_KEY = 'metadata-sink';
|
|
||||||
|
|
||||||
// Mock Resource Object
|
|
||||||
const resourceData = {
|
|
||||||
columns: [],
|
|
||||||
dataSetId: "01234567890123456789abcd",
|
|
||||||
description: "description",
|
|
||||||
isEnriched: false,
|
|
||||||
name: "name",
|
|
||||||
organizationId: "2dceb541-a1c1-4f38-96a4-9052dd69133e",
|
|
||||||
projectId: "01234567890123456789abcd",
|
|
||||||
resourceId: "a9aecd83-058e-4d6f-9fb9-f62a0e86246c",
|
|
||||||
resourceType: "asset",
|
|
||||||
tags: []
|
|
||||||
};
|
|
||||||
|
|
||||||
async function sendMessageToRabbitMQ() {
|
|
||||||
let connection;
|
|
||||||
try {
|
|
||||||
// Step 1: Connect to RabbitMQ
|
|
||||||
connection = await amqp.connect(RABBITMQ_URL);
|
|
||||||
const channel = await connection.createChannel();
|
|
||||||
|
|
||||||
// Step 2: Assert the exchange
|
|
||||||
await channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true });
|
|
||||||
|
|
||||||
// Step 3: Publish the message
|
|
||||||
const message = {
|
|
||||||
id: uuidv4(),
|
|
||||||
timestamp: new Date().toISOString(),
|
|
||||||
resource: resourceData
|
|
||||||
};
|
|
||||||
const messageBuffer = Buffer.from(JSON.stringify(message));
|
|
||||||
|
|
||||||
const result = channel.publish(EXCHANGE_NAME, ROUTING_KEY, messageBuffer);
|
|
||||||
|
|
||||||
// Logging results
|
|
||||||
if (result) {
|
|
||||||
logger.info('Message successfully published to RabbitMQ');
|
|
||||||
} else {
|
|
||||||
logger.warn('Message was not confirmed by RabbitMQ');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the channel
|
|
||||||
await channel.close();
|
|
||||||
} catch (error) {
|
|
||||||
logger.error(`Error sending message to RabbitMQ: ${error.message}`);
|
|
||||||
} finally {
|
|
||||||
if (connection) {
|
|
||||||
await connection.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Main Execution
|
|
||||||
sendMessageToRabbitMQ().catch((error) => {
|
|
||||||
logger.error(`Unexpected error occurred: ${error.message}`);
|
|
||||||
});
|
|
||||||
Loading…
Reference in New Issue
Block a user