Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Yogap sendMessage has so much delay #1253

Open
kadir3351 opened this issue Jan 18, 2025 · 1 comment
Open

Yogap sendMessage has so much delay #1253

kadir3351 opened this issue Jan 18, 2025 · 1 comment

Comments

@kadir3351
Copy link

I want to send 4 messages in order, but I want their order to be preserved.
This is also impossible.
I tried many methods, either it did not send in order or it was very slow.
1-)


bot.sendMessage(msg.chat.id, "aleykümselamkardeş")
          .then((sentMessage) => {
            setUserProperty(msg.chat.id, "last_message_id", sentMessage.message_id);
            bot.sendMessage(msg.chat.id, "1. mesaj")
          .then((sentMessage) => {
            setUserProperty(msg.chat.id, "last_message_id", sentMessage.message_id);
            bot.sendMessage(msg.chat.id, "2.mesaj")
          .then((sentMessage) => {
            setUserProperty(msg.chat.id, "last_message_id", sentMessage.message_id);
            console.timeEnd("sa")  
          })
          })
          })

522.625ms

const sendMessagesFast = async (messages, chatId) => {
  // Mesajları hızlı bir şekilde sırayla gönderiyoruz
  for (let index = 0; index < messages.length; index++) {
    const message = messages[index];
    let processedMessage = processMessage(message, chatId);

    try {
      // Her mesajı sırayla gönderiyoruz
      const sentMessage = await bot.sendMessage(chatId, processedMessage);
      setUserProperty(chatId, "last_message_id", sentMessage.message_id);
      console.log(`Mesaj ${index + 1} başarıyla gönderildi.`);
    } catch (error) {
      console.error(`Mesaj ${index + 1} gönderilirken hata oluştu: ${error}`);
    }
  }

  console.timeEnd("message-send-time");
};

468.42ms

const sendMessagesFast = async (messages, chatId) => {
  console.time("message-send-time");

  // Mesajları paralel olarak göndermek için, her mesajı Promise.all ile başlatıyoruz.
  const sendPromises = messages.map(async (message, index) => {
    let processedMessage = processMessage(message, chatId);

    try {
      // Her mesajı paralel olarak gönderebiliriz
      const sentMessage = await bot.sendMessage(chatId, processedMessage);
      setUserProperty(chatId, "last_message_id", sentMessage.message_id);
      console.log(`Mesaj ${index + 1} başarıyla gönderildi.`);
    } catch (error) {
      console.error(`Mesaj ${index + 1} gönderilirken hata oluştu: ${error}`);
    }
  });

  // Tüm mesajları paralel olarak göndermek için Promise.all kullanıyoruz.
  await Promise.all(sendPromises);

  console.timeEnd("message-send-time");
};

2ms but not in order

const sendMessagesFastWithOrder = (messages, chatId) => {
  console.time("message-send-time");

  // Mesajları sırayla ve hızlı şekilde göndermek için bir fonksiyon yazıyoruz.
  let index = 0;

  function sendNextMessage() {
    if (index < messages.length) {
      let processedMessage = processMessage(messages[index], chatId);

      bot.sendMessage(chatId, processedMessage)
        .then((sentMessage) => {
          setUserProperty(chatId, "last_message_id", sentMessage.message_id);
          console.log(`Mesaj ${index + 1} başarıyla gönderildi.`);
          index++;
          // Bir sonraki mesajı hemen gönderecek şekilde çağırıyoruz.
          sendNextMessage();
        })
        .catch((error) => {
          console.error(`Mesaj ${index + 1} gönderilirken hata oluştu: ${error}`);
          index++;
          sendNextMessage(); // hata olsa bile sırayı korumalıyız
        });
    } else {
      console.timeEnd("message-send-time");
    }
  }

  // İlk mesajı göndermek için başlatıyoruz.
  sendNextMessage();
};

556ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
@kadir3351 and others