تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محسن محمدخانی
اجرا دستوراتی در ساعت‌های زمانی مشخص در NodeJS
کیوان علی محمدی حل شده توسط کیوان علی محمدی

سلام 

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

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

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

آیا این 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];
};
 

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

بهترین پاسخ
کیوان علی محمدی ۱۹ تیر ۱۴۰۰، ۰۷:۰۵