Rumah >hujung hadapan web >tutorial js >Bagaimana untuk mengalihkan tugas dalam Node.js menggunakan Node Cron

Bagaimana untuk mengalihkan tugas dalam Node.js menggunakan Node Cron

DDD
DDDasal
2025-01-05 20:21:41256semak imbas

How to shedule a task in Node.js using Node Cron

__Untuk mengendalikan permintaan pemadaman tertunda (cth., memadamkan profil pengguna selepas 5 hari), anda boleh mencapai ini dalam Node.js menggunakan pendekatan penjadualan tugas tertunda. Berikut ialah pelaksanaan langkah demi langkah:

Pendekatan 1: Menggunakan Penjadual Tugas Latar Belakang (cth., node-cron atau Agenda.js)
Contoh dengan nod-cron:

  1. Pasang pakej: npm pasang node-cron Kod untuk Shedule Pemadaman const cron = memerlukan("node-cron"); const Pengguna = memerlukan("../models/User"); // Anggap Pengguna ialah model Mongoose anda

exports.deleteProfile = tak segerak (req, res) => {
cuba {
const { userId } = req.body;

// Validate input
if (!userId) {
  return res.status(400).json({ success: false, message: "User ID is required" });
}

// Find user to ensure existence
const user = await User.findById(userId);
if (!user) {
  return res.status(404).json({ success: false, message: "User not found" });
}

// Schedule deletion after 5 days
const deletionDate = new Date();
deletionDate.setDate(deletionDate.getDate() + 5);

cron.schedule(deletionDate.toISOString(), async () => {
  await User.findByIdAndDelete(userId);
  console.log(`User with ID ${userId} deleted successfully.`);
});

return res.status(200).json({
  success: true,
  message: `User deletion scheduled for ${deletionDate.toISOString()}`,
});

} tangkapan (ralat) {
console.error("Ralat pemadaman penjadualan:", ralat);
return res.status(500).json({ success: false, message: "Internal Server Error" });
}
};

Atas ialah kandungan terperinci Bagaimana untuk mengalihkan tugas dalam Node.js menggunakan Node Cron. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn