index.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const RabbitMQListener = require('./utils/RabbitMQListener');
  2. const rabbitMQListener = new RabbitMQListener();
  3. const RabbitMQProducer = require('./utils/RabbitMQProducer');
  4. let rabbitMQProducer = new RabbitMQProducer();
  5. async function formatForTwitter(message) {
  6. return "message formatted for twitter: " + message;
  7. }
  8. async function formatForLinkedin(message) {
  9. return "message formatted for linkedin: " + message;
  10. }
  11. async function formatMessage(message) {
  12. if (message === null || message === undefined) {
  13. return;
  14. }
  15. let messages = {
  16. twitter : '',
  17. linkedin: ''
  18. };
  19. try {
  20. // Use Promise.all to concurrently format the message for Twitter and LinkedIn
  21. [messages.twitter, messages.linkedin] = await Promise.all([
  22. formatForTwitter(message).catch(error => {
  23. console.error('Error formatting for Twitter:', error);
  24. return null;
  25. }),
  26. formatForLinkedin(message).catch(error => {
  27. console.error('Error formatting for LinkedIn:', error);
  28. return null;
  29. })
  30. ]);
  31. } catch (error) {
  32. // Handle any errors that occur during the formatting process
  33. console.error('Error formatting message:', error);
  34. }
  35. try {
  36. rabbitMQProducer.sendMessage('formattedMessages', JSON.stringify(messages));
  37. } catch (error) {
  38. console.error('Error sending message:', error);
  39. }
  40. }
  41. (async () => {
  42. rabbitMQListener.listenToQueue('fixedGrammar', (message) => {
  43. console.log('Received message from fixedGrammar ', message);
  44. formatMessage(message);
  45. });
  46. rabbitMQListener.listenToQueue('formatter', (message) => {
  47. console.log('Received message formatter:', message);
  48. console.log('Sending for fixing grammar:', message);
  49. rabbitMQProducer.sendMessage('fixGrammar', JSON.stringify({message: message}));
  50. });
  51. })();