Существует ли обходной путь для обработки ошибки «Ошибка: 4 DEADLINE_EXCEEDED: крайний срок превышен» в облачных функциях - PullRequest
0 голосов
/ 29 октября 2019

Я пишу в Firestore, используя пакетные записи облачных функций. В то время Ошибка: 4 DEADLINE_EXCEEDED: превышен крайний срок * Отображается и запись прерывается.

После просмотра этого вопроса Ошибка: 4 DEADLINE_EXCEEDED: Превышен крайний срок для Object.exports.createStatusError - GCP Я знал, что содержание ошибки достигло квоты для записи, но я не знаю, как с ней работать. Если вы знаете, как ее решить, пожалуйста, дайте мне знать.

Вот мой код.

exports.batchTest = functions.region('asia-northeast1').pubsub.schedule('every 60 minutes').onRun(async (snapshot, context) => {


    let db = admin.firestore();
    // Get a new write batch
    let batch = db.batch();

    const userRef = db.collection('user');
    const userQs = await userRef.get();

    userQs.forEach(userDocs => {
        let userId = userDocs.id;
        let likeRef = db.collection('like').doc(userId).collection('like').get().then(docs => {

            if (docs.exists) {
                const subLikeRef = db.collection('like').doc(userId).collection('like').doc(docs.id);
                batch.delete(subLikeRef)
                    .then(function () {
                        console.log("success");
                        return true;
                    })
                    .catch(function (error) {
                        console.error("Error", error);
                        return true;
                    });

            }
            return null;
        });


    });




    // Commit the batch
    return batch.commit().then(function () {
        // ...
        return null;
    });


}
);

1 Ответ

0 голосов
/ 11 ноября 2019

эта ошибка связана с тем, что ваши запросы занимают слишком много времени.

Чтобы избежать этого, вы можете либо изменить свою логику, чтобы записывать меньший пакет данных каждый раз, когда ваша функциясработал или вы можете попытаться увеличить значение тайм-аута.

Вы можете взглянуть на эту документацию Firebase и этот документ , чтобы увеличить значение тайм-аута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...