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

Cron Status

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

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

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+)
Языки: русский, английский, голландский.
Вложения
cronstatus-master.zip
(390.47 КБ) 67 скачиваний
Последний раз редактировалось Татьяна5 28.02.2022 13:18, всего редактировалось 1 раз.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 11 лет 7 месяцев
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 305 раз
Контактная информация:

Re: Cron Status

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

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

Т. Шаов
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Cron Status

Сообщение LavIgor »

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

Re: Cron Status

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

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

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

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

Т. Шаов
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 11 лет 7 месяцев
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 305 раз
Контактная информация:

Re: Cron Status

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

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

Т. Шаов
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Cron Status

Сообщение LavIgor »

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

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
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

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.5.x)
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Cron Status

Сообщение LavIgor »

Возможно, кэш?
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

Re: Cron Status

Сообщение Siava »

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

Re: Cron Status

Сообщение rxu »

Бэктрейс нужен, надо дебаг включать.
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

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.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

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.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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»