Очень глючат подписки, как исправить ?

#1 8 ноября 2019 в 20:31
Собственно примерно такая картинка как на скрине наблюдается просто постоянно. Пользователи ругаются, отписываются и т.д… В чём может быть проблема ?



Темы по подобным траблам уже читал… Куда смотреть, что исправлять так и не понял. Но у меня компонент этот ужасно глючил изначально. Даже когда был один тип контента например.
#2 9 ноября 2019 в 10:35


Собственно примерно такая картинка как на скрине наблюдается просто постоянно. Пользователи ругаются, отписываются и т.д… В чём может быть проблема ?



Темы по подобным траблам уже читал… Куда смотреть, что исправлять так и не понял. Но у меня компонент этот ужасно глючил изначально. Даже когда был один тип контента например.

@demelkar

Напишите об ошибках на гите github.com/instantsoft/icms2
#3 9 ноября 2019 в 12:54

Напишите об ошибках на гите

Def
В данном случае нет ошибок.

В чём может быть проблема ?

@demelkar
В чем угодно. Но я полагаю, что проблема в неверной настройки задачи CRON на сервере. И/или лимиты на соединение с mysql маленькие + шаред хостинг. И/или в настройке почты. И/или вы не указали версию движка, а в задачах планировщика в админке есть те, которые выполняются с ошибкой.

Иными словами может быть что угодно.
#4 9 ноября 2019 в 16:39

Куда смотреть

@demelkar
Как настроить тестовый cron /forum/thread29932-1.html#301037. Уведомления на почту вообще приходят, о предложении дружбы например? Если правильно настроен планировщик cron на хостинге \ VPS и почта — должны выполняться задания и исчезать.
#5 10 ноября 2019 в 14:44


Куда смотреть

@demelkar
Как настроить тестовый cron /forum/thread29932-1.html#301037. Уведомления на почту вообще приходят, о предложении дружбы например? Если правильно настроен планировщик cron на хостинге \ VPS и почта — должны выполняться задания и исчезать.

@noname

В том то и дело. Что уведомления приходят. Ошибок у Crona вроде как нет… Рассылки сами по себе приходят… Просто не всегда :)
Иногда они зависают, а потом приходят через несколько дней на старые темы.

Рассылку настаривал каждую минуту, потом каждые пять минут… Ничего не меняется, часть рассылки всегда глючит… Т.е. с такой работой получается что на instantcms у меня рассылки просто нет.

Вот сегодняшние показатели после того как почистил базу вчера… И так каждый день:



Не понимаю почему они "ожидают выполнения" если cron работает каждые пять минут? На каком этапе этот сбой происходит. В данном случае пара рассылок отправилась в день когда на сайте нет нагрузок… А две нет и "зависли"…
#6 10 ноября 2019 в 14:51
В планировщике у меня только одна задача, это рассылка подписки… версия исполнителя php 7.2 стоит. исполняется каждые 5 минут файл "/instant_1/public_html/cron.php", с нагрузкой всё впорядке. Если задача зависла она не должна повторяться, удаляться и т.д. ?

Хостер написал, что cron судя по логам выполняется по расписанию.


Напишите об ошибках на гите

Def
В данном случае нет ошибок.

В чём может быть проблема ?

@demelkar
В чем угодно. Но я полагаю, что проблема в неверной настройки задачи CRON на сервере. И/или лимиты на соединение с mysql маленькие + шаред хостинг. И/или в настройке почты. И/или вы не указали версию движка, а в задачах планировщика в админке есть те, которые выполняются с ошибкой.

Иными словами может быть что угодно.

Fuze
#7 10 ноября 2019 в 18:52

Рассылку настаривал каждую минуту, потом каждые пять минут…

@demelkar
На хостинге с настройкой времени вроде не работало, ставил * * * * * /usr/bin/php7.2 -f /home/login/site.ru/cron.php > /dev/null. В фале cron "некоторые задачи требуют безлимитного времени выполнения, в cli это по умолчанию", github.com/instantsoft/icms2/issues/1090 что-то изменят в 2.12.3 .
PS Уменьшение нагрузок
1 Блокировка спамовых IP (от большого количества запросов)
2 В robots.txt прописать правила для поисковиков, например Crawl-delay с параметром 40
3 Кэширование, минификация
Уменьшение размеров файлов css, js и html. В процессе сжатия все комментарии к коду, переносы строк, лишние табы и пробельные символы удаляются. Это позволяет сэкономить 10...20% от оригинального размера файла.
4 Защита от перебора паролей и постоянного «ломления» в админку
5 Нагрузку может создавать фаерволл \ антивирус

Единственное ограничение, которое может относится именно к Cron'ну — это ограничение на периодичность запуска. Например чтобы не перегружать сервер, провайдер может разрешать запуск Cron-заданий не чаще, чем один раз в час или полчаса. В остальном на эти задания действуют все те же ограничение, что и на сервер в целом (память ОЗУ, размер файла, время его выполнения и т.д.). Все эти ограничения задаются хостинг-провайдером и узнать их можно только у него.

Так же хотим Вас предостеречь от вызова Ваших утилит Cron'ом через wget (типа wget sitename.ru/path/to/script.php). Дело в том, что у PHP, запущенного через Apache, есть целый ряд ограничений, в т.ч. и на время работы скрипта. Если Ваш Cron-скрипт работает достаточно долго, он может просто не успевать отработать до конца, прежде чем его работа будет принудительно завершена. Кроме того, на работу таких скриптов будут оказывать влияния перезагрузки веб-сервера, выполняемые периодически, а также лимиты на количество процессов PHP, которые разрешены для запуска через Apache.
В Профиле пользователь сам выбирает куда слать уведомления, не мешало бы сделать выбор админстратору для всех и \ или Отложенную отправку писем /forum/thread32393-1.html.
#8 11 ноября 2019 в 09:38
Сейчас проверил: Предложение о дружбе на емейл приходит сразу, задание Подписок висит около минуты, потом исчезает и приходит письмо, smtp.mail.ru, с шифрованием.
#9 18 ноября 2019 в 16:10


Сейчас проверил: Предложение о дружбе на емейл приходит сразу, задание Подписок висит около минуты, потом исчезает и приходит письмо, smtp.mail.ru, с шифрованием.

@noname

А у меня нагрузка на сервер нормально… хостинг пишет, что крон выполняется каждые пять минут… А рассылка сегодня выглядит вот так:



Что с этим делать не очень представляю… Такие глюки с подпиской уже давно ответа из-за чего это может быть ни от кого так и не могу получить… хоть в какую сторону копать :(
#10 18 ноября 2019 в 16:24
Может нужна больше производительность: память ОЗУ, размер файла, время его выполнения и т.д. На VPS через smtp.mail.ru уходит .
/forum/thread27785-1.html, habr.com/ru/sandbox/27901/
#11 18 ноября 2019 в 17:10


Может нужна больше производительность: память ОЗУ, размер файла, время его выполнения и т.д. На VPS через smtp.mail.ru уходит .
/forum/thread27785-1.html, habr.com/ru/sandbox/27901/

@noname

Я не очень понял… на сервере всё ок… И crontab работает по расписанию. Вот лог например:



Хост пишет что с их стороны всё нормально… А вот в инстанте постоянные эти невыполенния заданий, зависания и т.д…

Они в принципе если зависли в очереди разве при следующем исполнении cron не должны исполняться например? Почему они "ожидают выполнения" при том что cron работает? При этом такое случается не всегда, порой всё ок, а порой глюки, сегодня зависает абсолютно вся рассылка.

Т.е. фактически с таким функционалом по факту подписки на сайте с instantcms у меня нет… Хостинг пишет что всё ок. Тут пишут что дело в хостинге. Что делать простому пользователю то выбравшему instantcms? :)
#12 19 ноября 2019 в 03:34

В планировщике у меня только одна задача, это рассылка подписки...

@demelkar
Судя по docs.instantcms.ru/manual/settings/scheduler, то еще и "отправка уведомлений о личных сообщениях" и тд
Лимиты какого-то хостинга:
Обычный хостинг
Частота запуска задачи Не чаще, чем раз в 15 минут
Лимиты времени выполнения 300 секунд (5 минут)
Бизнес-хостинг Любая 4 часа

Если запущенный процесс не успеет отработать за отведённое время, он будет принудительно завершён системой. При этом в логе cron напротив такого процесса будет отображаться статус «Убит».

Если лимита времени выполнения недостаточно, стоит рассмотреть следующие варианты:

Если скрипт обрабатывает большой объём каких-либо данных, можно разбить его на части, чтобы при каждом запуске скрипт обрабатывал не все данные сразу, а только очередную часть, и укладывался в отведённое время.
Изменить логику работы и оптимизировать код запускаемого скрипта, чтобы он успевал выполнить необходимые действия за отведённое время.
Если используется тариф обычного хостинга, можно перейти на тариф бизнес-хостинга, где лимит времени выполнения существенно выше.
Для linux нашел утилиту для управления и мониторинга процессов linux.die.net/man/1/monit, flock pingtool.org/ru/using-flock-to-ensure-only-one-instance-of-script-is-running/ .

PS с wget site.ru/cron.php >/dev/null 2>&1 за 5 минут пришло 23 уведомления на почту о создании записи. cms 2.12.2 .
На хостинге с * * * * * /usr/bin/php7.1 -f /home/login/site/cron.php > /dev/null ~ 9 30 быстро пропали задания и пришли уведомления на почту, в 9 47 уже дольше.
PS "wget site.ru/cron.php >/dev/null 2>&1" создало 1700 файлов крон )))
#13 20 ноября 2019 в 14:00
Я перенёс у хостинга всё на выделенный отдельный сервер и т.д. Там всё летает… И хостинг пишет что у них всё ок выполняется… Но рассылки упорно продолжают глючить… задания висят в "ожидании"…

Возможно instantcms действительно не рассчитан на более менее посещаемые сайты....



В планировщике у меня только одна задача, это рассылка подписки...

@demelkar
Судя по docs.instantcms.ru/manual/settings/scheduler, то еще и "отправка уведомлений о личных сообщениях" и тд
Лимиты какого-то хостинга:
Обычный хостинг
Частота запуска задачи Не чаще, чем раз в 15 минут
Лимиты времени выполнения 300 секунд (5 минут)
Бизнес-хостинг Любая 4 часа

Если запущенный процесс не успеет отработать за отведённое время, он будет принудительно завершён системой. При этом в логе cron напротив такого процесса будет отображаться статус «Убит».

Если лимита времени выполнения недостаточно, стоит рассмотреть следующие варианты:

Если скрипт обрабатывает большой объём каких-либо данных, можно разбить его на части, чтобы при каждом запуске скрипт обрабатывал не все данные сразу, а только очередную часть, и укладывался в отведённое время.
Изменить логику работы и оптимизировать код запускаемого скрипта, чтобы он успевал выполнить необходимые действия за отведённое время.
Если используется тариф обычного хостинга, можно перейти на тариф бизнес-хостинга, где лимит времени выполнения существенно выше.
Для linux нашел утилиту для управления и мониторинга процессов linux.die.net/man/1/monit, flock pingtool.org/ru/using-flock-to-ensure-only-one-instance-of-script-is-running/ .

PS с wget site.ru/cron.php >/dev/null 2>&1 за 5 минут пришло 23 уведомления на почту о создании записи. cms 2.12.2 .
На хостинге с * * * * * /usr/bin/php7.1 -f /home/login/site/cron.php > /dev/null ~ 9 30 быстро пропали задания и пришли уведомления на почту, в 9 47 уже дольше.
PS "wget site.ru/cron.php >/dev/null 2>&1" создало 1700 файлов крон )))

@noname
#14 20 ноября 2019 в 14:03

Возможно instantcms действительно не рассчитан на более менее посещаемые сайты...

@demelkar
При чём тут посещаемые сайты и задачи cron на сервере?

У вас проблема с почтой и выполнением задач планировщика. Почему — я не знаю.
#15 20 ноября 2019 в 14:05

Я перенёс у хостинга всё на выделенный отдельный сервер

@demelkar
Проблема может быть в хостинге. У меня на хостинге и на VPS работает. Cms одна и та же, если не на хостинге проблем нет — значит проблема не в cms )
Запуск PHP-файлов по расписанию с помощью Cron
Для запуска PHP-скриптов через Cron можно использовать специальный интерпретатор. К сожалению мы не можем дать вам инструкцию по его работе, т.к. у разных провайдеров может использовать разный софт. Поэтому многие вебмастера запускают PHP-файлы с помощью WGET, для этого используем такую запись в crontab:

30 3 * * 2 root wget -O — -q -t 1 mysite.com/file.php
"-O -" означает, что Cron не будет создавать лишние файлы, а будет работать через консоль. Это позволяет избежать захламления сервера.

"-q" отключает вывод операции на экран

"-t 1" разрешается только одна попытка соединения.

mysite.com/file.php — путь к вашему PHP-фалу (не обязательно указывать абсолютный путь).

Важно! Если вы будете передавать параметры с помощью этого PHP-файла, то бывают случаи когда WGET не совсем корректно их обрабатывает. В таком случае рекомендуем взять адрес PHP-файла в одинарные кавычки:

30 3 * * 2 root wget -O — -q -t 1 'http://mysite.com/file.php'
Про cron
Cron активизируется каждую минуту и читает определённые конфигурационные файлы, где указаны определённые задачи к выполнению, и расписание, по которому они должны быть выполнены. Если он находит что-то к выполнению в ту минуту, в которую он активизирован, то происходит выполнение операции. Всё то, что выводится на стандартном выводе, посылается на электронную почту владельца демона
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.