我有一些第三方API運行需要大約30分鐘才能返回結果的函數(他們做了一些冗長的計算)。 現在,如果我使用Nodejs通過適當的回調來調用這樣的API,默認情況下Nodejs會等待函數返回結果的30分鐘還是會超時? 如果超時,有沒有辦法增加等待時間?如果NodeJS功能需要很長時間,它會超時嗎?
1
A
回答
2
的Linux的違約可能20歲之間使用任何東西 - 因爲超時120秒 http://www.sekuda.com/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout
根據其要求您使用庫,你可以在設置超時有不同的語法。我個人很喜歡request
,這裏引用https://github.com/request/request。
request.get('http://10.255.255.1', {timeout: 1500}, function(err) {
console.log(err.code === 'ETIMEDOUT');
// Set to `true` if the timeout was a connection timeout, `false` or
// `undefined` otherwise.
console.log(err.connect === true);
process.exit(0);
});
我不認爲NodeJS函數本身會超時。
3
I假設您正在使用express
如果您使用express,則可以添加下面的代碼以增加等待時間。
var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
server.timeout = 1000;
否則你可以使用純http
var http = require('http');
var server = http.createServer(function (req, res) {
setTimeout(function() {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}, 200);
}).listen(1337, '127.0.0.1');
server.timeout = 20;
相關問題
- 1. 超時功能,如果它需要太長時間才能完成
- 2. 跳過功能,如果它需要太長時間
- 3. NSHost需要很長時間
- 4. presentRenderbuffer:GL_RENDERBUFFER_OES需要很長時間
- 5. HTTPURLConnection.getInputStream()需要很長時間?
- 6. 流程需要很長時間才能啓動,因爲它會檢查node_modules
- 7. MongoDB需要很長時間來查詢
- 8. AVAssetExportSession導出需要很長時間
- 9. 解釋計劃需要很長時間
- 10. 檢查代碼需要很長時間
- 11. 需要很長時間的SQL查詢
- 12. java.util.concurrent.ExecutorService#提交需要很長時間
- 13. Hiearchical Join需要很長時間
- 14. 返回需要很長時間
- 15. sqlite插入需要很長時間
- 16. 索引在Xcode需要很長時間
- 17. 從sessionStorage服務需要很長時間
- 18. 線程仍然需要很長時間
- 19. hood.ie開始需要很長時間
- 20. Perl Parallel :: ForkManager wait_all_children()需要很長時間
- 21. 大TChart需要很長時間繪製
- 22. ByteBuffer allocateDirect需要很長時間
- 23. 重複查詢需要很長時間
- 24. 爲什麼IIS7需要很長時間
- 25. Excel轉儲需要很長時間
- 26. Informix DELETE查詢需要很長時間
- 27. `react-native start`需要很長時間
- 28. SqlDataAdapter.Fill突然需要很長時間
- 29. NSManagedContext需要很長時間來堅持
- 30. Kafka Streams在處理可能需要多長時間時會超時?
是如何「第三方API」融入節點環境?一個HTTP請求肯定會超時。 – Bergi
API的文檔應該說明什麼是「適當的回調」。是的,它會等待,如果這是它應該如何使用。 – Bergi