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