2017-05-12 12 views
0

httpトリガーにすばやく応答して作業を続ける非同期機能をプログラミングしました。レスポンス後にGoogle機能を停止させない方法(res.status)

私はブロッキングの問題に直面しています:res.status('200').send('Message')が送信された後すぐに機能が停止するように見えます。例えば

exports.functionName = function functionName (req, res) { 
    function_promise1(req) 
    .then(function(){ 
     return function_promise2() 
    }) 
    .then(function (response){ 
     res.status(200).send('Triggered !'); 
     function_promise3() //Won't be executed ! Or only for few ms. 
    }) 
    .catch(function (e) { 
     console.error(e.message); 
     res.status(500).send(e.message); 
    }) 
}; 

は、Googleの機能が実際に応答した後、または私は何かが欠けています停止していますか?

+1

「送信」を呼び出すと、終了します。ログメッセージが必要な場合は、http応答ではなくログを使用する必要があります。これはクラウド機能だけではなく、すべてのHTTPレスポンスに適用されます。 –

+0

偉大な*答えのような音* Andrei! :-) –

答えて

0

「送信」を呼び出すと、終了します。ログメッセージが必要な場合は、http応答ではなくログを使用する必要があります。これはクラウド機能だけではなく、すべてのHTTPレスポンスに適用されます。

+0

メッセージ@ andrei-volginをログに記録したくないので、リクエスタとの接続を閉じるためにこの機能をリクエストしてから、その後にアクションを実行してください。 –

+0

例シナリオ:1.関数はhttpトリガーを受け取ります。2.関数は直接okと答えます。私は自分の仕事を行います。3.関数はその仕事を行います。 –

+0

HTTPリクエストはそのようには動作しません。あなたは仕事をしてから反応することができます。 1つのオプションは、AとBの2つの別個の機能を有することである。機能Aは要求を受信し、機能Bを開始し、OKに応答する。機能Bは、必要なだけ長く動作し続けます。 –

関連する問題