Как обработать запрос обновления Knex в цикле событий Socket IO - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть прослушиватель сокетов на моем сервере узлов, и он получает события сокетов в течение миллисекунд, и я обновляю статус, который я получаю в данных событий, с помощью knex.js с помощью MySql Client.Но иногда он не обновляется из-за более быстрого цикла обработки событий.

Я пробовал async-await, но это не помогло мне.Вот мой кодПожалуйста, помогите мне разобраться в этом.

socket.on("orderUpdate", function(message) {
    setImmediate(function(){
        orderModel.updateOrderStatus(message);
    })
 });

Здесь мой updateOrderStatus метод заключается в следующем.

updateOrderStatus: async function (data) {
    try {
        return await knex(table_name)
            .where('order_id', data.order_id)
            .update({
                status: data.status,
            })
    } catch (e) {
        return e;
    }
}

1 Ответ

0 голосов
/ 14 декабря 2018

1. Убедитесь, что вы получаете событие сокета.Для подтверждения используйте подтверждение сокета .

2. Распечатайте журналы запроса, чтобы проверить, было ли обновление успешным.

socket.on("orderUpdate", async function (message, callback) {
    let resp = await orderModel.updateOrderStatus(message);
    return callback(resp);
});

socket.emit("orderUpdate", message, (resp) => {
    console.log("resp : ", resp);
});
...