こんにちは、ノードスケジュールでこの問題が発生しました。特定の日付にジョブが発生するように設定しているnew Date()
ため、指定された日付にジョブが発生するようになりました。ノードスケジュールは毎分ジョブを繰り返し、停止しませんここに私の機能があります:
const sessionHelper = async (req, res, next) => {
console.log(req.sessionID);
console.log('inside the session helper function!!!!!!!!')
const id = req.sessionID;
const findSession = await AuthServiceInstance.sessID({id}); // authservice is what i am using to communicate and get the session obj from the DB table
console.log(typeof findSession.expire)
console.log(findSession.expire)
const time = new Date(findSession.expire); // this is the date from the database
console.log('time')
console.log(time) // is basically 3 minutes into the future
const job = schedule.scheduleJob(time, async () => {
console.log('schedule has started');
console.log('session done');
})
next()
}
Express-session で Cookie を生成して DB に送信する関数の背景について少し説明します。Cookie は現時点で 3 分間のみであり、3 分後に Express-Session によってブラウザから自動的かつ適切に削除されますが、DB に関しては、サーバーを再起動する必要があり、その後 DB から削除されます。これが、node-scheduleを使用してこの関数を実行し、最終的に Cookie を削除するようにしたかった理由です。
3分が経過したときにテストしているので、ノードスケジュールはジョブを実行しますが、このジョブを毎分繰り返し続けるので、ジョブの繰り返しを停止して1回だけ実行するにはどうすればよいですか?