Что происходит, когда вы устанавливаете триггер таймера месяца на срабатывание 31-го числа в течение месяца, в котором нет 31 дня?

#google-apps-script

Вопрос:

В проекте сценариев Google Apps вы можете настроить запуск триггера, управляемого временем, на ежемесячной основе. Например, 31 числа каждого месяца.

Каково поведение, если оно установлено на день, которого не существует в текущем месяце? Например, сработает ли ежемесячный триггер в феврале, если он будет запущен 31-го числа? Закончится ли это стрельбой в последний день этого месяца?

Комментарии:

1. Попробуйте это через 15 дней и увидите 🙂 вероятно, это произойдет 1-го числа

2. Да, я назначил один на этот месяц, но надеялся, что кто-нибудь сможет ответить на него раньше.

3. опубликуйте свой эксперимент. Но на всякий случай я бы не стал рассчитывать на такое неопределенное поведение, чтобы продолжать вести себя так, как вы обнаружите. Если вы хотите обработать что-то в конце месяца, лучше установите ежедневный триггер и первым делом в коде проверьте, последний ли это день месяца. Будет потребляться очень мало квоты, чтобы просто проверять один раз в день.

4. Я сделал это предложение ответом.

Ответ №1:

на всякий случай я бы не стал рассчитывать на такое неопределенное поведение, чтобы продолжать вести себя так, как это происходит сегодня.

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

Сохраните в свойствах сценария дату последней обработки, чтобы узнать, нужно ли ее запускать или нет.

Комментарии:

1. Спасибо за предложение. Вероятно, именно этим я в конечном итоге и займусь.

Ответ №2:

Я установил спусковой крючок на 31-е число, но поскольку 31-го дня в ноябре не было, спусковой крючок вообще не сработал. Кроме того, не было отправлено уведомление об ошибке выполнения.

Итак, предложение Зига Манделя было бы лучшим способом настроить триггер на последний день месяца.

Настройка триггера

Комментарии:

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

Ответ №3:

Я устанавливаю свой спусковой крючок на срабатывание в полночь-1 часа ночи 1-го числа каждого месяца.

Поскольку функция Javascript Date.getMonth() возвращает 0-11, это отлично работает, за исключением января (0), необходимо изменить на 12…

Если это НЕ ОЧЕНЬ чувствительная ко времени проблема, она должна соответствовать вашим потребностям…