Это сообщение об использовании планировщика задач Windows для автоматизации выполнения сценариев NODEJS и других задач на основе NPM/Yarn. Если вы не используете Windows, этот пост, вероятно, не для вас (Но не стесняйтесь читать в любом случае 🤷 ♀️)
Тонны причин! Может быть, вы пытаетесь эмулировать производственную среду, которая имеет Nodejs Scripts в качестве запланированных задач Cron. Или, для вашей собственной производительности или веселья, вы хотите, чтобы сценарировать вещи, которые произойдут на основе окна событий.
Например, вы можете написать сценарий NODEJS, который разговаривает с вашим трекером проекта Choice через API и останавливает любые таймеры выполнения при замке компьютера, чтобы сделать перерыв.
Почему бы не просто использовать Crontab под WSL?
Хороший вопрос! Если у вас установлен WSL ( подсистема Windows для Linux ), а вы Только хочу вызвать действия в зависимости от времени Тогда вы должны полностью дать Crontab под WSL выстрел!
Хотя раньше были проблемы с этим (в прошлых версиях, WSL, используемые для утракивания фоновых задач, когда вы закрыли консоль), я просто дал ему выстрел и имел успех. Если есть интерес, я мог бы сделать отдельный пост о том, как настроить Crontab под WSL.
Однако планировщик задач все еще имеет значение как отдельный инструмент, поскольку больше, чем просто время можно использовать в качестве триггера ; Вы можете выполнять задачи на основе компьютера разблокировки, энергопотреблениями и многое другое. Вы не можете сделать это с Crontab.
Шаги:
- Найдите, где хранятся двоичное/приложение, которое вам нужно запустить
Вы можете использовать
Где НПМ
илиГде пряжа
из командной строки, чтобы найти путь- Пример: мой путь пряжи —
C: \ Program Files ( x86) \ пряжа \ bin \ yarn.cmd
- Пример: мой путь пряжи —
- Открыть
Планировщик задач
(Поиск в программах илиWin + R, taskschd.msc
) - Начните процесс создания задач, нажав «Создать базовую задачу» или «Создать задачу» в боковой панели
- Выбирать триггер
- » По расписанию «(как Cron)
- » В журнал «
- И т.п.
Добавьте свое действие : Действие ->
Начать программу
- «Программа/сценарий»:
- Вот где вы подключаете путь к приложению, который вы нашли на шаге 1
«Добавить аргументы» — вы должны поставить все, что вы поставили после
NPM
илипряжа
как обычно.- Если обычно выполняется
NPM запустить myscheduledtask
, вы бы хотели аргументы бытьзапустить myscheduledtask.
- Если обычно выполняется
Если вы звоните в
Скрипты
Вход вpackage.json
Файл, вам нужно сказать планировщику, чтобы запустить это, где вашpackage.json
файл находится.- При использовании пряжи вы можете пройти рабочий каталог через args, с
CWD
Отказ - В противном случае используйте
Начать (необязательно)
поле для указания каталога
- При использовании пряжи вы можете пройти рабочий каталог через args, с
- «Программа/сценарий»:
Если вы обеспокоены отслеживанием результатов того, что побежали, вы также можете захватить результат чего-либо, вытесните на консоль, используя >> task_log.txt
или что-то подобное.
👩🍳 — вы можете объединить действия и триггеры
Одна приятная особенность задач планировщика о том, что я не заметил сразу, так это то, что оно не должно быть отображением 1: 1 для триггера.
Например, вы можете группировать десять различных действий в одной задаче с общим триггером.
✨ — вы можете использовать Git Bash для более продвинутых сценариев
Вместо того, чтобы нацелить NPM, пряжу или Windows CMD, если у вас есть Git Bash (поставляется упакованы с Git для Windows ), вы можете это как целевую «программу/сценарий», а затем выполнить более продвинутую команду, которая использует Некоторые инструменты Bash. Например, образец задачи, которая выполняет некоторые резервные копии для проекта, может выглядеть:
- «Программа/сценарий»:
C: \ Файлы программы \ git \ git-bash.exe
- «Добавить аргументы»:
CD C:/Проекты/My-ProJ && NODE Prep-Dirs.js && NPM Запуск Backup >> Backup_log.txt
💥 -% 1 не является действительным приложением Win32
Если вы видите эту ошибку, вы, вероятно, выбрали неправильное приложение в качестве Программа/скрипт
выполнить. Например, используя /пряжа
вместо того Yarn.cmd
приведет к этой ошибке.
⚙ — остановить окно cmd от появления
Если окно «Черное окно команда Windows» продолжает появляться всякий раз, когда ваши задачи выполняются, вам необходимо изменить одну из основных настроек:
Изменить варианты безопасности на:
Запустить, вошел ли пользователь или нет
- Вы, вероятно, также захотите проверить
Не храните пароль
- Вы, вероятно, также захотите проверить
Там нет вреда в том, чтобы он появился; Но это может быть раздражать, если ваша задача запланирована запускать часто.
⏰ — Как планировать чаще, чем каждые 5 минут
Возможно, вы уже заметили, что самый маленький интервал, который появляется в повторить задание каждый
Продолжительность Picker, при настроек триггера, это 5 минут
Отказ Ох!
На самом деле, это простое исправление — вы можете на самом деле ввести пользовательский интервал в этой коробке! Так что, если вы хотите вступление, которая эквивалентна Крону * * * * *
(Каждую минуту), просто введите в коробку 1 минута
и установить В течение длительности
к Бесконечно
Отказ
Вот что похоже:
Поскольку это, вероятно, будет придумать в комментариях (я уже могу услышать раздражающий ответ; «Почему вы не используете реальную операционную систему? ржу не могу!» ) — Да, планировщик задач не является идеальной заменой для Cron в Windows. Но это на самом деле не значит быть, и этот пост не защищается как таковой либо.
Плюс, ты может Используйте Crontab под WSL теперь (см. Мое записку под «Почему?»).
Я надеюсь, что это было полезно! Это немного отличается от того, о чем я обычно пишу, но чувствовал себя вынужденным опубликовать его, так как у меня были проблемы с поиском существующих ресурсов по теме.
Оригинал: «https://dev.to/joshuatz/using-windows-task-scheduler-to-automate-nodejs-scripts-1lm3»