Open
Description
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
Metadata
Metadata
Assignees
Labels
No labels