Заикнувшись в предыдущем посте Многопоточность в PHP про задачи крона, я решил их реализовать. Неожиданно именно эта часть движка для меня оказалась самой сложной.

Есть простая и работающая модель WordPress. Но она конкретно дает сбои при массовом обслуживании - у меня хостер даже заблокировал аккаунт на несколько часов из за перегрузки, из за чего сеть сайтов срочно пришлось перевозить на VDS. От того, что я перенес сайты на свой сервак проблема не перестала существовать. А всего то надо, чтобы один крон работал, то есть последовательно выполнялись крон задачи.

Для последовательного выполнения крон задач нужен менеджер по управлению этими задачами, который бы их последовательно и вызывал. Самостоятельные сайты, когда хотят запустить крон, просто добавляют свой крон в эту очередь на выполнение. Задачи крона можно выделить на две большие группы (или вида или типа или сорта): одноразовые и регулярные, то есть раз в час или в день или еще как. Одноразовая задача нужна после создания или редактирования поста - например отпинговать имеющиеся в посте линки. Регулярные например для какого нибудь плагина, например отсроченного кросспостинга.

Проблема вроде легко формулируется - значит она легко и решается. Но не следует забывать про вариант одиночного сайта, когда движок один и ни о каких очередях для крона речь можно не вести, и тогда выше описанная конструкция становится лишней, по типу того как она отсутствует в WordPress. Надо разрулить алгоритм для двух случаев: одиночного сайта и многосайтового варианта. Если многосайтовый движок, то как одиночный сайт должен знать, является ли он одиночкой или у него есть братья на сервере? Совет, типа в настройках хранить, не принимается в виду его дебильности. Я до сих пор не определил, какова должна быть система управления сайтами - то есть сверхадминка, которая управляет несколькими сайтами из одного места. Как эта система должна хранить инфу о сайтах, как инсталлировать автоматом, как... Много вопросов, к которым я даже еще не приступал. Задачи крона являются лишь частью этой системы по управлению. Не знаю как без ошибок придумать структуру системы, чтобы она отвечала всем стандартным требованиям: масштабируемость, расширяемость, простота, и так далее. Эти задачи тем более сложны, в виду того что сам движок еще не написан до конца. Скорее всего буду делать без вариантов одинокого сайта - менеджер справиться со списком из одного сайта, хоть это будет на первый взгляд казаться слишком громоздким, но это лишь ощущения - реально разница будет всего в несколько десятков строк редкоисполняемого кода.

Мой блог находят по следующим фразам
Плагин WordPress файловый архив
хостинг с предустановленным wordpress
как поднять PR До 3
программа для скриншот для висты
denwer mysql пароль
как перенести sql базу с денвера на хостинг