Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.

Cron Status

Все расширения, созданные нашим сообществом для phpBB, как находящиеся в разработке, так и прошедшие валидацию на официальном сайте phpbb.com, будут анонсированы тут. Вся техническая поддержка по этим расширениям оказывается в этом форуме.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3468
Стаж: 8 лет 5 месяцев
Благодарил (а): 41 раз
Поблагодарили: 826 раз

Cron Status

Сообщение LavIgor »

Название расширения:
Cron Status

Авторы: John P, LavIgor
Описание расширения: Это расширение позволяет вам видеть статус Cron и статус заданий Cron, а также выполнять задания Cron, готовые для выполнения.

Возможности:
  • Отдельная страница для отображения статуса Cron.
  • Уведомление о статусе Cron на главной странице Администраторского раздела, если Cron заблокирован.
  • Возможность видеть дату последнего выполнения и новую дату для каждого задания, возможность выполнять задания Cron, готовые для выполнения.
  • Страница статуса Cron обновляется с использованием Ajax каждые 60 секунд.
  • Задание, заблокировавшее Cron, а также задания, которые никогда не выполнялись, выделяются красным цветом.
  • Выбранный порядок сортировки таблицы заданий Cron автоматически сохраняется в настройках.
  • Поддержка Ajax и совместимость с noscript.
Скриншоты:
Cron_status_1.png
Cron_status_2.png
Скачать: https://www.phpbb.com/customise/db/exte ... ronstatus/.
GitHub: https://github.com/BoardTools/cronstatus (fix для phpBB 3.2.4+)
Языки: русский, английский, голландский.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Татьяна5 28.02.2022 13:18, всего редактировалось 1 раз.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 10 лет 1 месяц
Откуда: Израиль
Благодарил (а): 73 раза
Поблагодарили: 247 раз

Re: Cron Status

Сообщение Алг »

LavIgor писал(а): Всё правильно. Поскольку это Cron.
т.е. можно проверить действие только по каким-то изменениям в БД?
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3468
Стаж: 8 лет 5 месяцев
Благодарил (а): 41 раз
Поблагодарили: 826 раз

Re: Cron Status

Сообщение LavIgor »

Проверить можно разными способами. В том числе по изменениям БД и файлов.
Нельзя только печатать что-либо на экран, поскольку результат ответа Cron - маленькая картинка.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 10 лет 1 месяц
Откуда: Израиль
Благодарил (а): 73 раза
Поблагодарили: 247 раз

Re: Cron Status

Сообщение Алг »

я проверила, нормально сработал крон, а вот крон статус печатает такую строку

Код: Выделить всё

cron.task.suki_scheduleВыполнить	 Вчера, 21:35	Вчера, 21:36
и для некоторых системных задач тоже
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 10 лет 1 месяц
Откуда: Израиль
Благодарил (а): 73 раза
Поблагодарили: 247 раз

Re: Cron Status

Сообщение Алг »

вопрос такой. Мне нужно запускать задачу 13 числа каждого месяца в 00:01, т.е типа1 0 13 * * как мне установить _gc и last_gc?
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3468
Стаж: 8 лет 5 месяцев
Благодарил (а): 41 раз
Поблагодарили: 826 раз

Re: Cron Status

Сообщение LavIgor »

Встроенный Cron phpBB не предназначен для таких задач.
Можно осуществлять проверку условия в функции should_run, но выполнение задания будет зависеть от того, в какое время какой-либо пользователь зайдёт на конференцию.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 10 лет 1 месяц
Откуда: Израиль
Благодарил (а): 73 раза
Поблагодарили: 247 раз

Re: Cron Status

Сообщение Алг »

ещё не делала, но продумала, идея примерно такая:
при инсталляции _gc получает дату с ближайшим 13 числом месяца, на сегодняшний день получит 13.11.2015 00:01( по времени конференции). Если инсталляция будет, к примеру, 2 ноября, то дата будет такая же, если 15 ноября, то 13.12.2015 00:01, _last_gc получит 0
остальное сводится к известному алгоритму
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15747
Стаж: 16 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 441 раз
Поблагодарили: 1510 раз

Re: Cron Status

Сообщение rxu »

Siava писал(а): Собственно последнее задание, которое не выполнилось
Можно попробовать в /cron/task/tidy_topics.php в самом начале function soft_delete_topics добавить

Код: Выделить всё

if (!function_exists('truncate_string'))
{
    include($this->phpbb_root_path . 'includes/functions_content.' . $this->php_ext);
}
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4999
Стаж: 17 лет 8 месяцев
Откуда: Питер
Благодарил (а): 157 раз
Поблагодарили: 673 раза

Re: Cron Status

Сообщение Siava »

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

Код: Выделить всё

PHP Fatal error:  SQL ERROR [ mysqli ]<br /><br />Column 'user_id' cannot be null [1048]<br /><br />Произошла ошибка SQL при выборке на этой странице. Пожалуйста, сообщите <a href="mailto:f..m@s...a.ru">администратору</a>, если ошибка будет повторяться. in /.../forum/phpbb/db/driver/driver.php on line 855
И cron заблокировался примерно на час.
Через 12 часов снова та же ошибка и cron заблокировался снова.

Дальше начались мои попытки восстановить cron.
Снёс расшиерение с автоматической рассылкой поздравлений, удалил данные.
В phpbb_config обнулил значение cron_lock, почистил кеш.
Запускаю выполнение cron - бац, опять та же ошибка (код выше) и снова cron_lock.

Некоторое время мучился искал как от этого избавиться.
Пошёл таким путём: очистил значение переменной cron_lock, закомментировал строчку 855 в /phpbb/db/driver/driver.php и выполнил задание. Вроде прошло. Вернул строчку обратно, выполнил cron. Ошибок не было. Фух..

Спустя 2.5 часа опять та же фигня.

Код: Выделить всё

cron_lock 	1451412602 2a7e17d0fb9c590d
Cron заблокирован

Время блокировки cron: 22 минуты назад, Cron: 2a7e17d0fb9c590d
Где искать это 2a7e17d0fb9c590d ?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x, 3.1.x 3.5.x)
Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3468
Стаж: 8 лет 5 месяцев
Благодарил (а): 41 раз
Поблагодарили: 826 раз

Re: Cron Status

Сообщение LavIgor »

Возможно, кэш?
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4999
Стаж: 17 лет 8 месяцев
Откуда: Питер
Благодарил (а): 157 раз
Поблагодарили: 673 раза

Re: Cron Status

Сообщение Siava »

LavIgor, не, кеши чистил конечно же.
Я сейчас методом исключения пытаюсь найти причину. Отключил ещё 2 расширения, использующие cron, посмотрим..
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x, 3.1.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15747
Стаж: 16 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 441 раз
Поблагодарили: 1510 раз

Re: Cron Status

Сообщение rxu »

Бэктрейс нужен, надо дебаг включать.
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4999
Стаж: 17 лет 8 месяцев
Откуда: Питер
Благодарил (а): 157 раз
Поблагодарили: 673 раза

Re: Cron Status

Сообщение Siava »

rxu, нашёл участок кода из-за которого была эта ошибка. В том самом расширении для отправки поздравлений, ссылку на которое привёл выше.
Закомментировал код, вроде стало без ошибок работать, но и потерялась часть функционала (перестал писаться лог).

в cron\task\core\birthday.php вот этот кусок

Код: Выделить всё

				$userlist = array_map(function ($entry)
				{
					return $entry['name'];
				}, $msg_list);

				$this->log->add('admin', $this->user->data['user_id'], $this->user->data['session_ip'], 'BIRTHDAYSEND', false, array(implode(', ', $userlist)));
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x, 3.1.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15747
Стаж: 16 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 441 раз
Поблагодарили: 1510 раз

Re: Cron Status

Сообщение rxu »

Siava, а если попробовать в строке

Код: Выделить всё

$this->log->add('admin', $this->user->data['user_id'], $this->user->data['session_ip'], 'BIRTHDAYSEND', false, array(implode(', ', $userlist)));
заменить $this->user->data['session_ip'] на $this->user->ip?

Отправлено спустя 39 минут 16 секунд:
А, сорри, там про user_id речь... странно, оно должно быть задано.
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4999
Стаж: 17 лет 8 месяцев
Откуда: Питер
Благодарил (а): 157 раз
Поблагодарили: 673 раза

Re: Cron Status

Сообщение Siava »

rxu, включил Debug. В этом скрипте также и $this->user->data['session_ip'] получается как NULL. Не могу понять почему...

Код: Выделить всё

PHP Fatal error:  SQL ERROR [ mysqli ]<br /><br />Column 'user_id' cannot be null [1048]<br /><br />SQL<br /><br />INSERT INTO phpbb_log  (user_id, log_ip, log_time, log_operation, log_type, log_data) VALUES (NULL, NULL, 1451772784, 'BIRTHDAYSEND', 0, ' ..... 
В общем, сделал костыль. Теперь лог работает :mrgreen:

Код: Выделить всё

				$this->log->add('admin', '2', '127.0.0.1', 'BIRTHDAYSEND', false, array(implode(', ', $userlist)));
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x, 3.1.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15747
Стаж: 16 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 441 раз
Поблагодарили: 1510 раз

Re: Cron Status

Сообщение rxu »

Siava писал(а): Не могу понять почему...
Видимо, очередная фишка запуска крона через phpbbcli? Либо массив data не инициализирован, либо одно из двух.
Скорее всего так и есть, ибо data создается в session, а сессия в phpbbcli не инициализируется.

Отправлено спустя 28 минут 56 секунд:
Что если попробовать в конструкторе https://github.com/ForumHulp/emailonbir ... hp#L37-L47 в конце добавить

Код: Выделить всё

if (!isset($this->user->data))
{
    $this->user->session_begin(false);
} 
Изображение
Перенесено из форума Поддержка расширений для phpBB в форум Анонсы и поддержка расширений для phpBB 28.07.2019 19:52 модератором Татьяна5

Вернуться в «Анонсы и поддержка расширений для phpBB»