Задать вопрос
@beginer123

CRON как лучше сделать?

Здравствуйте, возник такой вопрос.
Логика сайта замешана на том что раз в день мне нужно запускать будет некий код.
Естественно через cron
Так вот, а что если вдруг мой скрипт внезапно упадет?
Я только что запустил его локально он прервался, через минуту ничего не меняя запустил еще раз, он заработал.
Возмем простейший пример, допустим скрипт должен в определенную колонку для каждой записи(их милион) добавлять +1
И напрример он сломался на 100 000-ой строке
Как сне сделать так чтобы в случае непридвиденной ошибки он все равно его довыполнил?
Но не просто заново, а с учетом его предыдущей работы
Как лучше такое сделать?
  • Вопрос задан
  • 291 просмотр
Подписаться 1 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
@deliro
Хранить состояние последнего запуска где-то и на каждом запуске проверять.
Ответ написан
@lega
1. Сделать атомарность, транзакции, если их нет, то другими способами, например если это файл, то сделать результирующий файл рядом и если все ок, то заменить (переименовать) исходный.
2. Помечать обработанные строки, в самой строке или с наружи.
3. Помечать текущую строку внутри/или снаружи, если процесс имеет "строгую" последовательность.

для каждой записи(их милион) добавлять +1

Конкретно эта задача решается не так, строки можно не обновлять совсем:
1) можно вычислять значение от даты создания строки
2) можно делать +1 всего лишь на одно значение, а во всех строках будет хранится только сдвиг
Ответ написан
Комментировать
На последней строке кода - записать в файл какое то значение, написать второй скрипт который проверяет значение и если его там нет - запустить скрипт еще раз.

Т.е первый крон в 12:00, второй в 12:05, тот что в 12:05 - скрипт который проверяет выполнение первого скрипта.

Думаю даже если с первого не включился, то со второго раза запустится ваш первый скрипт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽