Я использую MySQL Node и Redis Stream для получения входящего сообщения об обновлении. Когда вызывается конечная точка API, данные будут обновляться с использованием запроса UPDATE
. Если я вызываю SELECT
запрос для извлечения данных, я obtained old data before update
. Итак, я использовал redis stream для трансляции входящего сообщения и setTimeout
в течение 5 секунд для выполнения SELECT
запроса. Это работает, но иногда нет из-за обновления базы данных MySQL.
Обновление запроса
await connection.queryAsync('UPDATE ' + dbconfig.property_table + ' SET ? WHERE id = ?',[data,id]);
broadcastMessage('updateProperty',{ id }); // broadcast method send id to incomingMessage
Redis Stream
export async function broadcastMessage (stream, event) {
await redis.xadd(stream, event) // xadd custom Redis prototype for streaming message
}
// incomingMessage
setTimeout(() => {
await updateProperty(id);
},5000); // after 5 seconds received incoming message, get latest property and update to other place.
Задача
Не согласовано получение последних данных свойств после обновления в едином вызове Express API.
Есть ли способ получить (SELECT
) последние данные после UPDATE
запроса в одном вызванном API?