اجرا دستوراتی در ساعت های زمانی مشخص در NodeJS

پرسیده شده
فعالیت 1028 روز پیش
دیده شده 357 بار
0

سلام 

من میخوام راس هر ساعت به وقت تهران  یک دستور اجرا بشه

و همچنین راس ساعت ۱۲ شب 

کد زیر اینکار انجام میده

آیا این setInterval که هر یک ثانیه داره اجرا میشه بعدا مشکلی بوجود میاره؟  یا بهینه هستش؟

ایا از طریق سرور بک اند امکان انجام این کار هستش که دیگه من از setInterval استفاده نکنم؟

const timezone = "Asia/tehran";

setInterval(function () {
  const tehranTimeCurrent = new Date().toLocaleString("en-US", {
    timeZone: timezone,
  });

  let time = tehranTimeCurrent.split(" ")[1];
  let statusTime = tehranTimeCurrent.split(" ")[2];

  //   console.log(time);
  //   time = "23:0:00";
  if (checkReachToEveryHour(time)) {
    console.log("do it every hour");
  }

  if (statusTime !== "PM") {
    return;
  }

  if (time === "12:59:59") {
    console.log("do it every day and night");
  }
}, 1000);

const checkReachToEveryHour = (time) => {
  const numberZero = ["00", "0"];

  if (!numberZero.includes(getSecond(time))) {
    return false;
  }

  if (!numberZero.includes(getMinute(time))) {
    return false;
  }
  return true;
};

const getHour = (time) => {
  return time.split(":")[0];
};

const getMinute = (time) => {
  return time.split(":")[1];
};

const getSecond = (time) => {
  return time.split(":")[2];
};
 
فایل پیوست

1
حذف شده

سلام خدمت شما. بهتره برای پیاده سازی این روش حتما از cron jobs ها در لینوکس استفاده کنید و در اون روش کافیه یک script رو معرفی کنید تا سر ساعت و تاریخ مشخص شده برای شما اجرا بشه.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

19 تیر 00