Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/85: Рейтинг темы: голосов - 85, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83

Запуск скрипта в фоновом режиме

02.02.2012, 15:07. Показов 16398. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предлогаю решить проблему запуска скрипта в фоновом режиме. Конечно можно зделать это с помощью крона но хотелось бы универсальности, ведь не у всех есть крон. А в чём суть. Проблема в том что выполнение некоторых скриптов занемает много времени, допустим разсылка писем. Представляете в форуме на разсылку подписалось 500 человек и при добовление темы вы ждёте чтобы php разошлёт эти письма. А еслиб возможно былоб этот скрипт запустить в фоновом режиме то скрипт выполнялся бы сам по себе не мешаю пользователю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2012, 15:07
Ответы с готовыми решениями:

Работа в фоновом режиме
Сразу извиняюсь за название темы и раздел. Я не знал, где эту тему создать и как её назвать. Вопрос прозвучит не только о PHP, а вообще про...

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

Запустить скрипт в фоновом режиме
Задача такая: есть кнопка по нажатию которой запускается таймер обратного отчета. Данные о времени запуска и окончания таймера отправляются...

9
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
02.02.2012, 15:15
Насколько я себе это представляю, подобные рассылки строятся следующим образом: скрипт просто создает n-ое количество текстовых файлов-писем, которые складирует в специальную папку, откуда письма рассылает уже почтовый сервер.
Может не стоит изобретать велосипед?
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83
02.02.2012, 15:46  [ТС]
Понемаете, для себя я бы зделал многими спосабами, но скрип должен быть уневирсальным, не все могут складировать кудато или пользоватся функциями каторые не у всех включены. Тоесть скрипт должен работать на всех платформах одинаково!!! А вилосипед сто пудов стоит изобретать, а иначе мы упераемся в стену не уневирсальности php как языка, что не хотелось бы.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
02.02.2012, 15:53
Для массовой рассылки можно использовать BCC поле. Тогда одно письмо будет отправляться любому кол-ву адресатов.
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
02.02.2012, 15:53
Насколько мне известно, практически все хостеры поддерживают стандартные способы для отправки писем из скриптов. Думаю эти стандартные способы учитывают возможность массовой рассылки в той или иной степени. Может лучше почитать спецификации предоставляемых хостером услуг?
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
02.02.2012, 16:15
Под Unix также можно использовать такой трюк
exec("/path/to/cmd > /dev/null &");
Символ & указывает что процесс должен работать в фоновом режиме
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
03.02.2012, 15:56
А что если в mailer.php в начале прописать:
ignore_user_abort(true);
header("Location: thanks.php");
Ведь всем известно что header не останавливает работу скрипта. Клиент переходит на страницу thanks а mailer будет спокойно отправлять свои письма.
Не проверял
0
1 / 1 / 5
Регистрация: 25.04.2010
Сообщений: 121
06.02.2012, 19:47
А если заюзать AJAX? Хотя согласен с предыдущим мнением о изобретении велосипеда = крон надо юзать. Или приведите пример, где его нельзя использовать.. только не общими словами.. а подробно.
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 83
07.02.2012, 19:39  [ТС]
Ну ещё раз повторюсь что крон это круто, но а если крон не решает проблему?.
Вобщем проблема решена, кому интересно вот пример его работы. Этот скрипт работает везде, проверено.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
ignore_user_abort(false);
if (ob_get_level() == 0) ob_start();
echo "<script language='JavaScript'>location.href='http://www.yandex.ru'</script>"; 
ob_flush();
flush();
$r=1;
$res = fopen('fon', 'a+');
while (1)
{   
ob_flush();
flush();
    sleep(1);
    fputs($res, time()."x0A");
    $r++;
    if($r == 30) break;
}
ob_end_flush();
?>
запускаете скрипт он тутже перекидывает на яндекс и ещё 30 секунд пишет время в файл. Если кто проще придумет выкладывайте.
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
07.02.2012, 20:01
Ну в принципе об этом я и говорил. Наверное все таки лучше header(), яваскрипт может быть отключен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2012, 20:01
Помогаю со студенческими работами здесь

php скрипт в фоновом режиме
как с помощью функции exec() запустить скрипт в фоновом режиме? это легко сделать через ajax но мне надо из php скрипта запустить другой...

Загрузка файла в фоновом режиме
Всем доброго времени суток. Как реализовать загрузку файла в фоновом режиме? Нужно это для музыкального сайта, то-есть нужно при заходе на...

Открытие страницы в фоновом режиме по клику
Проблема такая!!! Есть меню ссылок: Надо чтобы при нажатии на конкретную ссылку открывалась основная страница, на которую идет...

Выполнение php скрипта в скрытом режиме
Добрый день. Есть у меня php страничка, которая выполняет определенные действия и генерирует htm файл на сервере. К ней есть html форма,...

Запуск скрипта
Всем привет! Мне нужен скрипт теста, скачал, установить не получилось. Сделал все как в инструкции, проверяю на денвере, не работает,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru