【问题标题】:Error: 4 DEADLINE_EXCEEDED: Deadline Exceeded at Object.exports.createStatusError - GCP错误:4 DEADLINE_EXCEEDED:Object.exports.createStatusError 已超过最后期限 - GCP
【发布时间】:2019-07-30 17:23:13
【问题描述】:

我正在尝试从我的一个 Google Cloud Functions 中创建一个 Google Cloud 任务。当一个新对象添加到我的 Cloud Storage 存储分区之一时,此函数会被触发。

我按照此处提供的说明创建了我的 App Engine (App Engine Quickstart Guide)

然后在我的云函数中,我添加了以下代码来创建云任务(如此处所述 - Creating App Engine Tasks

但是,我的任务或 App Engine 调用有问题(不确定是什么)。

我时不时地收到以下错误。有时有效,有时无效。

{ Error: 4 DEADLINE_EXCEEDED: Deadline Exceeded at Object.exports.createStatusError (/srv/node_modules/grpc/src/common.js:91:15) at Object.onReceiveStatus (/srv/node_modules/grpc/src/client_interceptors.js:1204:28) at InterceptingListener._callNext (/srv/node_modules/grpc/src/client_interceptors.js:568:42) at InterceptingListener.onReceiveStatus (/srv/node_modules/grpc/src/client_interceptors.js:618:8) at callback (/srv/node_modules/grpc/src/client_interceptors.js:845:24) code: 4, metadata: Metadata { _internal_repr: {} }, details: 'Deadline Exceeded' }

如果您需要更多信息,请告诉我,我会在此处将它们添加到此问题中。

【问题讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?

标签: google-cloud-platform google-cloud-functions


【解决方案1】:

我在使用 Firestore 时遇到了同样的问题,尝试一次写一个文档;我通过返回全部承诺来解决它。那是因为云函数需要知道什么时候方便终止函数,但是如果你不返回任何东西可能会导致这个错误。

我的例子:

data.forEach( d => {
       reports.doc(_date).collection('data').doc(`${d.Id}`).set(d);
    }) 

这是我的问题,我正在逐一编写文档,但我没有兑现承诺。所以我解决了这个问题:

const _datarwt = [];

data.forEach( d => {
          _datarwt.push( reports.doc(_date).collection('data').doc(`${d.Id}`).set(d) );
        }) 
const _dataloaded = await Promise.all( _datarwt );

我将返回的 Promise 保存在一个数组中并等待所有的 Promise。这为我解决了它。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-26
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2012-09-03
    • 2021-10-26
    相关资源
    最近更新 更多