Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
[FAQ] cron.php
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
- Leviafant
- phpBB 1.4.4
- Сообщения: 106
- Стаж: 17 лет 2 месяца
- Откуда: Курск
- Поблагодарили: 1 раз
- Контактная информация:
[FAQ] cron.php
Как с помощью cron.php выполнять скрипты по расписанию, если конечно это возможно с помощью этого файла
Здесь на форуме я что то ничего не нашел
Здесь на форуме я что то ничего не нашел
- rxu
- phpBB Guru
- Сообщения: 16313
- Стаж: 17 лет 10 месяцев
- Откуда: Красноярск
- Благодарил (а): 533 раза
- Поблагодарили: 2119 раз
- Контактная информация:
Re: cron.php
Для этого необходимо выполнить ряд действий.
1) создать параметр конфигурации, задающие периодичность выполнения скрипта. Для этого необходимо присвоить имя переменной и задать её значение - в секундах (это и будет периодичность выполнения скрипта). Допустим, переменную произвольно назовем my_script_gc. Внести её можем напрямик в базу, добавив в таблицу phpbb_config строку, где config_name будет равно my_script_gc, а config_value равно, например, 60 (т.е. периодичность - ежеминутно). Например В папке cache удалим кэш глобальных значений конфигурации - файл data_global.php.
2) Аналогично, создаем значение для хранения времени последнего выполнения нашей крон-функции, оно будет динамическим (т.е. не кэшируемым):
3) Добавляем задание в крон для периодического выполнения. При этом допустим, что наш скрипт, содержащий необходимую для выполнения функцию my_cron_function, называется my_cron.php и находится в папке includes. Реализуем:
4) В файле includes/functions.php находим функцию page_footer, в ней задаем условия для срабатывания крона, например:
При этом важно сначала отладить правильную работу самой функции, запуская её напрямую без условий, например, в отдельном скрипте. Иначе, если при ее выполнении будут возникать ошибки, работа крона в целом может быть нарушена.
Важное замечание: в обязательном порядке в самом конце функции, вызываемой в кроне (в нашем случае, my_cron_function), должно записываться в таблицу конфигурации время последнего выполнения функции. В нашем случае (для примера)
Проверить, какая именно задача выполняется кроном в данный момент, можно, просмотрев исходный код главной страницы в браузере, в самом низу его (в футере) можно нати строку (если в этот момент выполняется крон) наподобие
1) создать параметр конфигурации, задающие периодичность выполнения скрипта. Для этого необходимо присвоить имя переменной и задать её значение - в секундах (это и будет периодичность выполнения скрипта). Допустим, переменную произвольно назовем my_script_gc. Внести её можем напрямик в базу, добавив в таблицу phpbb_config строку, где config_name будет равно my_script_gc, а config_value равно, например, 60 (т.е. периодичность - ежеминутно). Например
Код: Выделить всё
INSERT INTO phpbb_config (config_name, config_value) VALUES ('my_script_gc', '60');
2) Аналогично, создаем значение для хранения времени последнего выполнения нашей крон-функции, оно будет динамическим (т.е. не кэшируемым):
Код: Выделить всё
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('my_script_last_gc', '0', 1);
3) Добавляем задание в крон для периодического выполнения. При этом допустим, что наш скрипт, содержащий необходимую для выполнения функцию my_cron_function, называется my_cron.php и находится в папке includes. Реализуем:
Код: Выделить всё
OPEN
cron.php
FIND
case 'prune_forum':
BEFORE, ADD
case 'my_cron_function':
if (time() - $config['my_script_gc'] <= $config['my_script_last_gc'])
{
break;
}
include_once($phpbb_root_path . 'includes/my_cron.' . $phpEx);
if ($use_shutdown_function)
{
register_shutdown_function('my_cron_function');
}
else
{
my_cron_function();
}
break;
Код: Выделить всё
OPEN
includes/functions.php
FIND
else if (time() - $config['session_gc'] > $config['session_last_gc'])
{
$cron_type = 'tidy_sessions';
}
AFTER, ADD
else if (time() - $config['my_script_gc'] > $config['my_script_last_gc'])
{
$cron_type = 'my_cron_function';
}
Важное замечание: в обязательном порядке в самом конце функции, вызываемой в кроне (в нашем случае, my_cron_function), должно записываться в таблицу конфигурации время последнего выполнения функции. В нашем случае (для примера)
Код: Выделить всё
set_config('my_script_last_gc', time(), true);
Код: Выделить всё
<img src="./cron.php?cron_type=my_cron_function" width="1" height="1" alt="cron" /></div>
Последний раз редактировалось rxu 15.02.2011 16:52, всего редактировалось 1 раз.
Причина: Пропущен открывающий апостроф.
Причина: Пропущен открывающий апостроф.
- Garret_Dark
- phpBB 2.0.16
- Сообщения: 1096
- Стаж: 15 лет 2 месяца
- Откуда: root/world/russia/
- Благодарил (а): 126 раз
- Поблагодарили: 206 раз
- Контактная информация:
Re: [FAQ] cron.php
На это ругается phpmyadmin...rxu писал(а):Код: Выделить всё
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES (my_script_last_gc', '0', 1);
Код: Выделить всё
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '', '0', 1)' at line 1
INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES (ip_script_last_gc', '0', 1);
Мои моды:
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
-
- Former team member
- Сообщения: 2217
- Стаж: 15 лет 3 месяца
- Благодарил (а): 236 раз
- Поблагодарили: 561 раз
- Контактная информация:
Re: [FAQ] cron.php
Garret_Dark
Ничего не изменилось, просто в примере перед my_script_last_gc открывающего апострофа не хватает.
Ничего не изменилось, просто в примере перед my_script_last_gc открывающего апострофа не хватает.
- misterleks
- phpBB 2.0.9
- Сообщения: 715
- Стаж: 13 лет 7 месяцев
- Откуда: Великий Новгород
- Благодарил (а): 103 раза
- Поблагодарили: 38 раз
- Контактная информация:
Re: [FAQ] cron.php
В корне форума лежит файл cron.php нужно его запускать по расписанию? И что он будет делать, если нужно запускать.
Вспоминая опыт использования других движков сайтов и форумов, там в инструкции писалось запускать этот файл каждые 24 часа, а для phpbb ничего такого не нашёл.
Вспоминая опыт использования других движков сайтов и форумов, там в инструкции писалось запускать этот файл каждые 24 часа, а для phpbb ничего такого не нашёл.
Продаю комиксы, продаю инструмент, продаю товары для охоты и рыбаков... и администрирую форум!
- nissin
- phpBB 3.0.4
- Сообщения: 2208
- Стаж: 16 лет 3 месяца
- Откуда: Павлодар
- Благодарил (а): 7 раз
- Поблагодарили: 338 раз
- Контактная информация:
Re: [FAQ] cron.php
Он сам запускается, при заходе пользователей/гостей на конференцию, если в шаблонах его запуск не потёрли.
styles/prosilver/template/overall_footer.html
styles/prosilver/template/overall_footer.html
Код: Выделить всё
<!-- IF not S_IS_BOT -->{RUN_CRON_TASK}<!-- ENDIF -->
Всё повторяется. nurlan.info
- misterleks
- phpBB 2.0.9
- Сообщения: 715
- Стаж: 13 лет 7 месяцев
- Откуда: Великий Новгород
- Благодарил (а): 103 раза
- Поблагодарили: 38 раз
- Контактная информация:
Re: [FAQ] cron.php
Нет, я ничего не тёр. Теперь всё ясно, почему у меня в админке процессы запускаются от разных имён. А можно в него как-нибудь бекапы базы прописать, чтобы он создавал их автоматом (3 штуки) и поочерёдно затирал при создании новой?
Продаю комиксы, продаю инструмент, продаю товары для охоты и рыбаков... и администрирую форум!
- Айдар
- Former team member
- Сообщения: 1687
- Стаж: 13 лет 3 месяца
- Откуда: KZN
- Благодарил (а): 93 раза
- Поблагодарили: 189 раз
- Контактная информация:
Re: [FAQ] cron.php
misterleks, были попытки - SypexDumper+Cron+E-mail
http://sypex.net/forum/viewtopic.php?f=3&t=60&p=1063
http://sypex.net/forum/viewtopic.php?f=3&t=34
http://sypex.net/forum/viewtopic.php?f=3&t=60&p=1063
http://sypex.net/forum/viewtopic.php?f=3&t=34
In Web We Trust
-
- Former team member
- Сообщения: 2217
- Стаж: 15 лет 3 месяца
- Благодарил (а): 236 раз
- Поблагодарили: 561 раз
- Контактная информация:
Re: [FAQ] cron.php
Вот это -
Будет теперь просто:
$use_shutdown_function
- убрано в последних версиях движка. Поэтому вместо:
Код: Выделить всё
if ($use_shutdown_function)
{
register_shutdown_function('my_cron_function');
}
else
{
my_cron_function();
}
Код: Выделить всё
my_cron_function();
- boloto
- phpBB 1.4.4
- Сообщения: 126
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 57 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: [FAQ] cron.php
А подскажите как проверить какие функции есть сейчас у cron-a на форуме. Когда они срабатывают и срабатывают ли вообще? Есть у меня опасения, что крон после переезда на новый сервер сбоит. (в частности перестали отрабатываться авто-группы)
- Garret_Dark
- phpBB 2.0.16
- Сообщения: 1096
- Стаж: 15 лет 2 месяца
- Откуда: root/world/russia/
- Благодарил (а): 126 раз
- Поблагодарили: 206 раз
- Контактная информация:
Re: [FAQ] cron.php
boloto, последний абзац второго сообщения... проверяйте, если функция "висит" постоянно одна и таже, то значит в ее выполнении ошибка, если проходят "по кругу" (циклически), то все хорошо.
Что означает "авто-группы" ? мод или стандартная функция переноса из группы "Новые пользователи"?
Если мод, то проверьте его установку.
Что означает "авто-группы" ? мод или стандартная функция переноса из группы "Новые пользователи"?
Если мод, то проверьте его установку.
Мои моды:
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
- Pazh
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 4 месяца
- Благодарил (а): 43 раза
- Поблагодарили: 506 раз
- Контактная информация:
Re: [FAQ] cron.php
boloto
Время последних запусков каждого из заданий крона:
Интервалы запуска крона для каждого задания:
Текущее состояние крона:
если результат 0 - то крон "спит" - значит все задания выполняются согласно графика без ошибок, если не 0, то будет значение "XXXXпробелYYYY" где XXXX - это время последнего запуска задания, YYYY - это уникальный ID
В случае если XXXX довольно старое (а точнее больше разницы текущего времени и самого большого значения из интервалов) - то значит крон заткнулся. Причин может быть 2: ошибка в коде функции задания крона или ошибка в обрабатываемых данных заданием
Время последних запусков каждого из заданий крона:
Код: Выделить всё
select * from `phpbb_config` where config_name like '%_last_gc'
Код: Выделить всё
SELECT * FROM `phpbb_config` where config_name like '%_gc' and config_name not like '%_last_gc'
Код: Выделить всё
SELECT * FROM `phpbb_config` where config_name = 'cron_lock'
В случае если XXXX довольно старое (а точнее больше разницы текущего времени и самого большого значения из интервалов) - то значит крон заткнулся. Причин может быть 2: ошибка в коде функции задания крона или ошибка в обрабатываемых данных заданием
Помощь в ЛС/email только за WM или ЮMoney