Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 April 03

VP

Vitaliy Pavlenko in NodeUA - JavaScript and Node.js in Ukraine
Якщо не можна переставити зараз час, запускати крон частіше( там кожу годину) і у самій ноді рахувати локальний час потрібний і якщо підходить - запускати а якщо ні - абортити
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Dmitry Sadchikov
>>> Проблема возникает когда часовой пояс сервера не соответствует поясу клиента
Например, пол года у них 6 часов разница, пол года 5
Тут уже надо писать драйвер для сведения данных или искать готовый. Что бы учитывать все юзкейсы.
Так о том и речь
Либо кроны менять раз в пол года, либо через опу решать - например, запускаться каждый час и проверять, а надо ли делать действие
источник

DS

Dmitry Sadchikov in NodeUA - JavaScript and Node.js in Ukraine
@ellenaua, вот тут вот паттерн применения: https://docs.nestjs.com/techniques/task-scheduling#declarative-cron-jobs
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy Pavlenko
Якщо не можна переставити зараз час, запускати крон частіше( там кожу годину) і у самій ноді рахувати локальний час потрібний і якщо підходить - запускати а якщо ні - абортити
Это вариант 2, через задницу 😁
источник

VP

Vitaliy Pavlenko in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
Это вариант 2, через задницу 😁
А руками змінювати - краще?
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
я в упор не вижу там в примерах как запустить в заданное UTC время. это на меня пятница так действует?
источник

DS

Dmitry Sadchikov in NodeUA - JavaScript and Node.js in Ukraine
>>> не вижу где там в nest можно сказать крон джобу запуститься в точное UTC время например 1577059200000
Я имел ввиду, что нетс предоставляет обертку сглаживающую разницу между ОС I/O
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy Pavlenko
А руками змінювати - краще?
Краше это делать через тот же крон
Но вообще руками лучше, нежели выполнять 100500 ненужных работ
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Dmitry Sadchikov
>>> не вижу где там в nest можно сказать крон джобу запуститься в точное UTC время например 1577059200000
Я имел ввиду, что нетс предоставляет обертку сглаживающую разницу между ОС I/O
о нашла! @Cron(new Date(Date.now() + 10 * 1000)) - вот так
или в моем случае это будет @Cron(new Date('2020-05-01T09:00:00-07:00').valueOf())
источник

VP

Vitaliy Pavlenko in NodeUA - JavaScript and Node.js in Ukraine
Не згоден, даже автоматизація через жопу краще за щось робити оуками
источник

DS

Dmitry Sadchikov in NodeUA - JavaScript and Node.js in Ukraine
свормируйте маску строки и скормите крону. Чертов антиспам бот. @ellenaua оно
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
Краше это делать через тот же крон
Но вообще руками лучше, нежели выполнять 100500 ненужных работ
То есть крон, который меняет крон
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
и там написано что если задавать так, то это ты задашь время для 1 выполнения, а не регулярно в 9. конечно лучше чем ничего.
источник

DS

Dmitry Sadchikov in NodeUA - JavaScript and Node.js in Ukraine
Почитайте подробнее доки, там все есть.
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
а для тех кто без серверов (serverless) есть вот такой способ делать крон джобы https://serverless.com/blog/cron-jobs-on-aws - по графику дергаются Lambda функции
источник

KT

Kostya T in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
где именно использовать timestamp если мне нужно чтобы крон запускался в 9 часов по Сан-Франциско? если дадите ответ как это решается таймстампом с меня шоколадка
можно просто указать нужную таймзону

const { CronJob } = require('cron');
const job = new CronJob('0 0 9 * * *', handler, null, true, 'PDT');

 job.start();
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Kostya T
можно просто указать нужную таймзону

const { CronJob } = require('cron');
const job = new CronJob('0 0 9 * * *', handler, null, true, 'PDT');

 job.start();
ооо вот это уже прям класс
источник

VP

Vitaliy Pavlenko in NodeUA - JavaScript and Node.js in Ukraine
Kostya T
можно просто указать нужную таймзону

const { CronJob } = require('cron');
const job = new CronJob('0 0 9 * * *', handler, null, true, 'PDT');

 job.start();
Перезапуск сервера == смерть
источник

KT

Kostya T in NodeUA - JavaScript and Node.js in Ukraine
в каком плане? если он перезапустится ровно в 9?
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
чего? если не посреди крона перезапуск, то он когда поднимется заново установит расписание
источник