別のリクエストを使用して、どのようにkoa.jsでリクエストを終了できますか?アクティブなリクエストコンテキストをオブジェクト内に保持しているとします。リクエストAが開始され、時間がかかると仮定します。要求Aを終了するように指示する別の要求を行うにはどうすればよいですか。Koa.js実行中のリクエストを中止します
var requests = {};
// middleware to track requests
app.use(function*(next) {
var reqId = crypto.randomBytes(32).toString('hex');
requests[reqId] = {
context: this
}
yield next;
delete requests[reqId];
}
);
// route to kill request using ID generated from middleware above
router.get('/kill/:reqId', function *(next) {
var req = requests[this.params.reqId];
if (req) {
// abort request here
} else {
this.body = {
error: 'Request not found'
};
}
});
定期的にチェックするキャンセルトークンを実装する必要があります。 – Jeff