Всем привет!
Суть проблемы такова.
Хостинг, на котором у меня размещён мантис, начал предъявлять претензии в связи с тем, что скрипты в одну секунду отправляют больше одного сообщения (следящим пользователям при изменениях в запросах). Так и есть, вопрос, как возможно это поправить, поставив задержку хотя бы в секунду
Гугл показал лишь на функцию usleep(300000); поможет ли это, и в какой файл и место её нужно вставить. Просьба помочь...
Заранее благодарен!
Установка лимита между отправками сообщений в Mantis
Moderators: Developer, Contributor
Re: Установка лимита между отправками сообщений в Mantis
Попробуйте заменить эту функцию у себя в файле core/email_api.php (только сделайте backup)
Code: Select all
function email_send_all($p_delete_on_failure = false) {
$t_ids = email_queue_get_ids();
$t_emails_recipients_failed = array();
log_event( LOG_EMAIL, "Processing " . count( $t_ids ) . " queued messages" );
foreach( $t_ids as $t_id ) {
$t_start = microtime(true);
$t_email_data = email_queue_get( $t_id );
log_event( LOG_EMAIL,
"Sending message #$t_id queued on " .
date( config_get( 'complete_date_format' ), $t_email_data->submitted )
);
# check if email was not found. This can happen if another request picks up the email first and sends it.
if( $t_email_data === false ) {
continue;
}
# if unable to place the email in the email server queue, then the connection to the server is down,
# and hence no point to continue trying with the rest of the emails.
if( !email_send( $t_email_data ) ) {
if ($p_delete_on_failure) {
email_queue_delete( $t_email_data->email_id );
}
if( microtime(true) - $t_start > 5 ) {
break;
} else {
continue;
}
}
usleep(1000000); //или sleep(1);
}
}
Re: Установка лимита между отправками сообщений в Mantis
Спасибо, это помогло!
Вот ещё как помогло, можно так же в core/email_queue_api.php в конце функции function email_queue_delete просто вставить usleep(1000000);
Вот ещё как помогло, можно так же в core/email_queue_api.php в конце функции function email_queue_delete просто вставить usleep(1000000);
Re: Установка лимита между отправками сообщений в Mantis
Лучше разместить задачу в Багтрекере. Не уверен, что ее сделают, но попытаться можно. В коде они ее точно не вставят, т.к. тогда сайт будет тормозить при посещении сайта, отправляя каждую секунду письмо, а вот в этот код они могу внести изменения, т.к. он выполняется только на сервере через крон.