Task-Manager і Comet-Server

3 вересня 2014

Впритул наблизився до реалізації task-manager для серверів, на яких живуть мої сайти.

Заодно, щоб 2 рази не ходити, треба реалізувати Comet-сервер, який при потребі будуть кидати сайтам realtime-повідомлення про успішне чи неуспішне завершення асинхронних процесів.

Що сподвигло: PHP - інтерпретатор, відповідно, команди виконуються по черзі, одна за одною. Є, і вони необхідні, функції (механізми) на сайтах, які апріорі не можуть працювати швидко, - наприклад відправка пошти з використанням віддаленого SMTP, тривалий парсинг, наприклад, списку сайтів банків для отримання актуальних курсів валют і т.д.... Якщо сайт надсилає лист з, наприклад, замовленням інтернет-магазину, то затримка становить близько 1 сек. (можна трохи прискорити, але не сильно), в цей час користувач, дивуючись, чому сайт «висить», може кілька разів натиснути на кнопку відправки, і він таки часто натискає на цю кнопку.

В результаті виходять неадекват і візуальні гальма, чого терпіти ненавиджу.

Проблему з поштою можна вирішити відправкою самим веб-сервером, але це значно збільшує ймовірність попадання в спам.

Тому, рішення з участю Task-Manager і Comet-Server більш універсальне та потенційно витонченіше.

Кандидат для Task-Manager знайшовся тут, Comet-Server напишемо поки примітивний, на PHP+Memcache+Cron , якщо він буде вести себе погано, або йому стане «важко», запустимо реактивний Realplexor Котлерова.