का उपयोग करते हुए लैम्ब्डा फ़ंक्शन किए जाने पर ब्राउज़र क्लाइंट को सूचित करें मेरे परिदृश्य में मैं सर्वर को कम बैकएंड लागू करने की कोशिश कर रहा हूं जो बहुत लंबे समय तक उपभोग करने वाली गणना करता है। यह गणना लैम्ब्डा द्वारा प्रबंधित की जाती है जो कुछ बाहरी एपीआई को संदर्भित करती है।अमेज़ॅन एसक्यूएस
इस अनुरोध के लिए मैं अमेज़ॅन एपीआई गेटवे का उपयोग कर रहा हूं जिसमें 10 सेकंड निष्पादन सीमा है। हालांकि लैम्ब्डा लगभग 100 सेकंड चलाता है।
इस सीमा से बचने के लिए मैं इस समय उपभोग गणना & रिपोर्ट निष्पादित करने के लिए दूसरी लैम्ब्डा फ़ंक्शन का उपयोग कर रहा हूं कि गणना शुरू हो गई है।
मैं बहुत ही इस के समान दिखता है:
var AWS = require('aws-sdk');
var colors = require('colors');
var functionName = 'really-long'
var lambda = new AWS.Lambda({apiVersion: '2015-03-31'});
var params = {
FunctionName: functionName,
InvocationType: 'Event'
};
lambda.invoke(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(functionName.green + " was successfully executed and returned:\n" + JSON.stringify(data, null, 2).gray); // successful response
});
console.log("All done!".rainbow);
इस कोड को स्वतंत्र रूप से ग्राहकों ब्राउज़रों के हजारों द्वारा एडब्ल्यूएस एपीआई गेटवे से अधिक मार डाला जाता है।
प्रत्येक विशेष ग्राहक को सूचित करने के लिए कि उसका लैम्ब्डा फ़ंक्शन निष्पादन सफलतापूर्वक किया गया था, मैंने एडब्ल्यूएस एसक्यूएस (लंबे मतदान और बॉक्स के बाहर कुछ अन्य उपयोगी कार्यक्षमताओं के कारण) का उपयोग करने की योजना बनाई है।
तो मेरे सवाल का है:
मैं ग्राहक कतार में जो संदेश इस विशेष ग्राहक के अंतर्गत आता है पर कैसे निर्धारित कर सकते हैं? या क्या मुझे प्रत्येक क्लाइंट ब्राउज़र में कुछ अनुरोध आईडी पैरामीटर द्वारा उचित संदेश खोजने के लिए सभी कतारों पर फिर से शुरू करना चाहिए? मुझे लगता है कि यह विधि अक्षम होगी जब 1000 ग्राहक एक साथ अपने परिणामों की प्रतीक्षा करेंगे।
मैं समझता हूँ कि मैं उदाहरण के लिए DynamoDB लिए परिणाम लिख सकते हैं और समय-समय पर कुछ घर का बना एपीआई के माध्यम से परिणाम के लिए डीबी मतदान कर सकते हैं करते हैं। लेकिन क्या कुछ अमेज़ॅन पाएएस समाधान के आधार पर लैम्ब्डा फ़ंक्शन का उपभोग करने वाले समय के निष्पादन को पूरा करने के बारे में ब्राउज़र आधारित क्लाइंट को सूचित करने के लिए कोई शानदार समाधान है?