Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
PHP - Отложенное выполнение операции
|
|||
|---|---|---|---|
|
#18+
Нужно сделать такую задачу. Посетитель на сайте нажимает кнопку или ссылку и PHP-код выполняет определенные команды. Через 10 минут нужно выполнить другие команды. Например при нажатию на кнопку посетителю предоставляется доступ к некоему внешнему информационному ресурсу, а через 10 минут доступ нужно снять. Пока я склоняюсь к тому, чтобы использовать спулер заданий и скрипт в планировщике. То есть PHP-скрипт при нажатии кнопки выполнит определенные команды и добавит в специальную таблицу в БД строку, в которой будет указан идентификатор посетителя, задания и срок действия этого задания. Специальный скрипт запускается планировщиком каждые 5 минут, проверяет эту таблицу и для заданий с истекшим сроком действия выполняет определенные команды, после чего удаляет обработанные строки из БД. Но тут мне не нравится то, что необходим частый запуск скрипта (каждые 5 минут, а лучше каждую минуту), хотя большая часть запусков будет вхолостую. Но пока это основной вариант. Второй вариант — PHP-скрипт будет запускать внешний скрипт, который при запуске ждет определенное время, после чего выполняет остальные команды. Например это может быть shell-скрипт, в котором первой строкой указано sleep 600, а после этого набор команд для отключения доступа к внешнему информационному ресурсу; идентификаторы посетителя передаются в аргументах командной строки. На первый взгляд должно работать и нет оверхида в виде холостых запусков скрипта планировщиком. Но есть опасение, что таким образом можно заддосить сервер. Еще в PHP есть функция sleep и многопоточность. Мне кажется, что это можно было бы использовать. Подскажите, получиться ли это использовать для веб-сервера? Или веб-сервер в любом случае будет прерывать работу PHP по таймауту? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 18:18 |
|
||
|
PHP - Отложенное выполнение операции
|
|||
|---|---|---|---|
|
#18+
Alibek B., планировщик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 18:39 |
|
||
|
PHP - Отложенное выполнение операции
|
|||
|---|---|---|---|
|
#18+
Похоже для моего второго колхозного варианта есть более кошерный с использованием at. Попробую с ним поэкспериментировать, мне он больше спулера заданий нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 18:41 |
|
||
|
PHP - Отложенное выполнение операции
|
|||
|---|---|---|---|
|
#18+
Alibek B.Второй вариант — PHP-скрипт будет запускать внешний скрипт, который при запуске ждет определенное время, после чего выполняет остальные командыПерезагрузка вебсервера (дочерний скрипт помрёт вместе с родителем) - и остальные команды выполнены не будут. Alibek B.Но тут мне не нравится то, что необходим частый запуск скрипта (каждые 5 минут, а лучше каждую минуту), хотя большая часть запусков будет вхолостую.Можно запустить скрипт один раз и выполнить в нём бесконечный цикл со слипом. Внутри цикла - команды обработки задания. Таким образом, задание можно выполнять с любым интервалом, хоть в три секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 18:58 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1461375]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 348ms |

| 0 / 0 |
