Назад | Перейти на главную страницу

Несколько Cron одновременно

Я устанавливаю кучу магазинов Magento на веб-сервере. У каждого веб-сайта есть задание cron, которое Magento использует для обновления своих материалов - это занимает 3-4 секунды. В инструкции указано, что он должен запускаться каждые 5 минут.

Я спрашивал себя, целесообразно ли из соображений производительности устанавливать каждый cron для работы в разные минуты (например: минуты 0, 5, 10 и т.д. для первого веб-сайта - минуты 1, 6, 11 и т.д. для второй и так далее), чтобы уменьшить перекрытие, или если это бесполезно, потому что Linux выполняет несколько заданий cron в одну и ту же минуту по порядку, избегая параллелизма.

Лучшее, что можно сделать здесь - это протестировать.

Linux может выполнять несколько заданий одновременно. В зависимости от того, насколько ресурсоемким является каждое задание, может возникнуть конфликт, если вы запустите несколько заданий одновременно. Их разделение не вызывает никаких проблем и, безусловно, уменьшит потенциальные проблемы, вызванные одновременным запуском нескольких заданий.

Зависит от.

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

Если вы не хотите увеличивать нагрузку на свой сервер и ваши скрипты хорошо справляются с работой (не зависят от того, когда они запускаются), вы можете запускать их в разные минуты. Также вы можете добавить к нему немного случайности, если хотите, с помощью sleep $(( $RANDOM%100 )); somecommand подождать от 1 до 100 случайных секунд перед выполнением сценария.

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

В этом нет никаких проблем.

Что касается расписания выполнения, мы обнаружили, что некоторые модули не переносят cron выполняется с любым интервалом, кроме 5 минут, начиная с 5 минут после часа.

*/5 * * * * /home/path/public_html/cron.sh