Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 504 gateway time-out
 
 автор: TetRiska   (08.02.2014 в 21:27)   письмо автору
 
 

Всем привет!

Есть такой javascript:

$.post('/requests/sendMessage.php',{
    'm':amail
},function(data){
    if(data.length > 0){
        if(data != 'Hacking attempt!'){
            alert('all message send');
        }
    }
});

Он отправляет массив email-ов в php скрипт где тут же начинается рассылка. В самом php скрипте я прописал ini_set("max_execution_time", "0"); дабы избежать обрыва отправки. После окончания отправки на экран мне должно вывестись сообщение. Так вот, если большая рассылка, скрипт может работать 2 и более минут. При этом мне в консоле firebug-a пишет 504 gateway time-out и время работы 1m30s. Сам php скрипт продолжает работать и рассылает всем успешно, но после окончания отправки, я уже не увижу сообщения, что все отправлено, т.к. произошла ошибка.

Куда копать?

Версия jquery: 1.5.1

Пробовал через $.ajax отправить с timeout > 90s, все равно ругается на 1m30s, если ставить меньше, то срабатывает, но мне нужно больше.

Или подскажите такой вариант как реализовать:
- шлем в php скрипт массив email-ов, который начинает рассылку
- отослали 1 письмо, вывели сообщение, что 1 из 100 отправлено
- отослали 2 письма, вывели .... и тд
- когда будет отослано последнее письмо, мы сообщаем, что рассылка окончена

P.S. Скрипт делаю не для рассылки спама, а для уведомления подписанных клиентов, а то мало ли, что подумаете!

  Ответить  
 
 автор: confirm   (09.02.2014 в 08:53)   письмо автору
 
   для: TetRiska   (08.02.2014 в 21:27)
 

long poll
Но учитывая, что работа с почтой, а на это всегда накладываются ограничения, может быть лучше помещаться список для задач cron, и при возвращении "принято", запускать опрос состояния выполнения этой задачи.

  Ответить  
 
 автор: TetRiska   (09.02.2014 в 16:35)   письмо автору
 
   для: confirm   (09.02.2014 в 08:53)
 

про крон думал, не подходит
по линку пока ничего не понял, почитаю еще, спасибо

  Ответить  
 
 автор: confirm   (09.02.2014 в 17:54)   письмо автору
 
   для: TetRiska   (09.02.2014 в 16:35)
 

И чем это cron не подходит?
Запускайте exe, но смысл ждать ответа сервера через N-неизвестного времени?

  Ответить  
 
 автор: TetRiska   (09.02.2014 в 18:25)   письмо автору
 
   для: confirm   (09.02.2014 в 17:54)
 

Возможно я и ошибаюсь. Например повешу на крон, который каждые 5 минут будет проверять таблицу на появление новых писем и отсылать. Как тогда препятствовать следующему запуску крона, если предыдущая аналогичная операция не закончилась?

  Ответить  
 
 автор: confirm   (09.02.2014 в 18:37)   письмо автору
 
   для: TetRiska   (09.02.2014 в 18:25)
 

не крону нужно препятствовать, а в скрипте который запускает крон проверять условие можно ли делать отправку, которое устанавливается а "да" только после окончания операции, и сбрасывается в ее начале.

  Ответить  
 
 автор: TetRiska   (09.02.2014 в 19:13)   письмо автору
 
   для: confirm   (09.02.2014 в 18:37)
 

ага, понял, спасибо, буду пробовать

  Ответить  
 
 автор: confirm   (09.02.2014 в 21:48)   письмо автору
 
   для: TetRiska   (09.02.2014 в 19:13)
 

Ну да, что тут может быть непонятного, только если говорить более полно, то проверяться должны два условия - разрешена ли отправка, и есть ли что для отправки.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования