Запускайте cron в 11:30 утра попеременно

Мне нужно задание cron для NodeJS, которое будет выполняться в 11:30 попеременно. Я искал, но получаю решения только на день, а не на каждый день.

Предлагается ChatGPT

const isAlternateDay = () => {
  const today = new Date();
  const day = today.getDate();
  // For example, consider odd days as alternate days
  return day % 2 !== 0;
};

// Schedule the cron job for 11:30 AM every day
cron.schedule('30 11 * * *', () => {
  if (isAlternateDay()) {
    console.info('Running cron job on an alternate day at 11:30 AM');
    // Your task logic here
  }
});

Но я хочу сделать это, используя сам cron; Я не хочу добавлять внешнее условие.

Что вы подразумеваете под «альтернативными днями»? Если это должно означать «чередование», то согласны ли вы с нечетными/четными днями или вы конкретно имеете в виду каждые 48 часов, независимо от номеров дней в календаре?

tripleee 02.08.2024 11:47

(Нечетный/четный день года будет производить прогоны в соседние дни только один раз в году, исключая високосные годы.)

tripleee 02.08.2024 11:48

Я хочу запускать cron каждые 48 часов в 11:30.

Hiren Kalariya 02.08.2024 11:48

Тем не менее, cron сам по себе не имеет для этого механизма; проверка самого задания и выход раньше, если сегодня не тот день, - это, безусловно, самое простое решение.

tripleee 02.08.2024 11:49

Межсайтовый дубликат: unix.stackexchange.com/questions/16093/…

tripleee 02.08.2024 11:50

Этот вопрос похож на: Как поручить cron выполнять задание каждую вторую неделю?. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.

tripleee 02.08.2024 11:51

Я задаю вопрос, потому что мне нужен ответ на конкретную ситуацию, если вы можете дать, а затем, пожалуйста, отправьте свой ответ.

Hiren Kalariya 02.08.2024 11:52

В вашем вопросе указано 11, но в вашем комментарии указано 11:30. Ваш комментарий, вероятно, будет проигнорирован большинством посетителей; отредактируйте вопрос, если он неверен.

tripleee 02.08.2024 11:53

У меня есть обновление, теперь вы можете видеть

Hiren Kalariya 02.08.2024 11:54

Предлагаемый дубликат содержит ответы на вполне аналогичную ситуацию; от вас ожидается, что вы разберетесь в тонкостях его адаптации к вашему сценарию.

tripleee 02.08.2024 11:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
10
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы запланировать задание cron, которое будет выполняться в разные дни в 11:30, вы можете использовать следующее выражение cron:

// Schedule a task to run alternative days at 11:30 AM
cron.schedule('30 11 */2 * *', () => {
  console.info('Running a task alternative days at 11:30 AM');

});

Объяснение:

  • 30 указывает минуту (30-ю минуту).
  • 11 указывает час (11 утра).
  • */2 указывает каждые 2 дня.

Нет, */2 указывает четные дни месяца; поэтому он будет запускаться каждые 3 дня, когда наступит 31-дневный (или 29-дневный) месяц.

tripleee 05.08.2024 14:13

Другие вопросы по теме