User Tools

Site Tools

Translations of this page:

Sidebar

Documentation index

ru:cron_crontab_settings

Cron Settings

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

Если во вкладке Main вы видите надпись “check crontab” это значит в 99% случаев, что кто-то удалил вашу запись. Обычно она выглядит следующим образом:

*/1 * * * * cd /path_to_scj/bin/; env HTTP_HOST=yourdomain.com /path_to_php/php -q cron.php

где path_to_scj и path_to_php соответствующие пути на вашем сервере.

если вы используете внутреннюю ротацию то надо так же добавить крон ротации

*/1 * * * * cd /path_to_scj/bin/; env HTTP_HOST=yourdomain.com /path_to_php/php -q rot.php

Если у вас много доменов

Если у вас на одном сервере стоит много копий, то следует распределить нагрузку, что бы все эти копии не запускались одновременно. Для этого создайте в любом месте файл scj.sh в который внесите все задания смарта без * , например

  cd /path_to_scj/bin/; env HTTP_HOST=yourdomain.com /path_to_php/php -q cron.php &
  sleep 2
  cd /path_to_scj2/bin/; env HTTP_HOST=yourdomain2.com /path_to_php/php -q cron.php &

Обратите внимание на наличие & в конце строки - этот параметр запускает задачу в фоне, те система не дожидается когда отработает текущая команда, а сразу переходит к сл строке. (см нижи) Регулируйте время sleep таким образом что бы все кроны были запущены в течение минуты.

NOTE амперсант (&) в конце строки обязателен потому что он запускает задачу в фоне и переходит к сл строке в файле, если сделать без него то кроны будут выполнятся по очереди. Учитывая, что скрипт может работать целую минуту (см ниже почему) то к следующей строке в файле оно перейдет через минуту и кроны не успеют выполнится в течение минуты.

и добавьте в крон уже этот файл, например:

*/1 * * * * cd /path_to_sh_file/ ; sh scj.sh

ВНИМАНИЕ общее кол-во слипов в файле должно быть не более минуты, те 59 слипов это максмум. Если у вас больше скриптов - надо ставить меньше пауз.

Почему rot.php работает целую минуту

Амперсант в конце строки нужен тк rot.php, если запустить его отдельно, может работать целую минуту. В реальности, конечно, он работает быстрее, однако если у вас в очереди на граб есть галеры, то что бы распределить нагрузку равномернее скрипт запускает граб галер не сразу в начала минуты, а растягивает это во времени. Например, нам надо за минуту сграбить 3 галеры, мы не запускаем одну за другой в начале минуты, а запускает граб первой на 10й секунде каждой минуты, 2ю на 30й секунде, и 3ю на 50й секунде минуты. Между запускаеми граба скрипт спит, те не тратит времени процессора.

Время работы cron.php

Этот скрипт расчитывает приоритеты трейдеров, а так же проверяет трейдеров на наличие в банлистах, алексу, google-safebrowsing, бан слова, создает тумбы трейдеров и тп. Приоритеты расчитываются очень быстро, а скорость проверки зависит от удаленных сайтов. Например, скрипт проверяет страницу трейдера на бан слова - значит надо сделать запрос на сервак трейдера и получить ответ. Если сервак трейдера висит - то скрипт может прождать 30 секунд. Эти 30 секунд он не занимает времени процессора, просто висит и ждет ответа, не поедая ресурсы сервера.

ru/cron_crontab_settings.txt · Last modified: 2014/01/29 18:18 (external edit)