(Умный) Планировщик заданий

zerkms

TDD infected
Команда форума
Fortop
мде.... ну ладно, оффтоп так оффтоп:
это может быть вообще файл, а не таблица.
если ты всё отлично понимаешь, что разницы никакой - то зачем уточнять? твоё значимое (?) уточнение для решения задачи что-то изменило?

по поводу точности: да, не указал, пардон.
так или иначе - твоё решение всё равно сильно более запутанное и сложное для реализации, чем мой "вариант №2", он же - вариант от флоппика.
 

zerkms

TDD infected
Команда форума
флоппик
м? ты не согласен?

Если посмотреть внимательно, то в решении №2 речь идет о событиях - отправить извещение "мы о тебе соскучились". У флоппика речь идет об обработчиках этих событий.
не принципиально. кардинальное различие в "проверяем сейчас" и "планируем заранее" - именно это я и обсуждаю, потому как иных предложений у вас нет.
 

zerkms

TDD infected
Команда форума
Fortop
а если посмотреть ещё внимательнее - то у меня написано
Затем шедулер проходится по этой таблице и выполняет те задания, которые уже пора выполнить.
 

Fortop

Новичок
zerkms
Мое "уточнение" было призвано показать локальное значение данного хранилища - оно не имеет смысла для системы в целом, а только для данного конкретного аудитора.
Писать мегауниверсального аудитора - нецелесообразно.
Лучше иметь серию простых.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
кардинальное различие в "проверяем сейчас" и "планируем заранее"
Нет там разницы.
Вариант первый: "планируем событие" в приложении, в шедулере по достижению времени "проверяем сейчас"
Вариант второй: "планируем событие" в приложении, в шедулере по достижению времени "проверяем сейчас"

Разница как раз в подходе.
Проблема боюсь в том, что ты сам не знаешь, что ты хочешь услышать от других.
 

zerkms

TDD infected
Команда форума
Fortop
Резюмируя: ты согласен с тем, что предложенное решение №2 из ТС-поста (== флопиковскому, с "отличием" в том, что он явно показал кодом о хранении "задания" а я сказал словами) - является лучшим из того, что может быть предложено здесь и сейчас?

-~{}~ 05.04.10 02:43:

флоппик
Вариант первый: "планируем событие" в приложении
?????????7
Заводим таблицу, в неё пишем события (факты) уведомлений.
ты издеваешься?
повторяю в 10ый раз: В ВАРИАНТЕ 1 НИЧЕГО НЕ ПЛАНИРУЕТСЯ ЗАРАНЕЕ
 

Fortop

Новичок
zerkms
Ключевое отличие.
Решение №2 постоянно лопатит список шедулера.

В варианте флоппика, и в моем предложении - в список попадает только то, что уже 100% должно быть выполнено.

При этом сами аудиторы сами являются частью этого списка шедулера, а в №2 это непонятно как привязанный слой.

P.S. ну хоть убейте, я вижу у флоппика и себя вариант №1, т.е.
zerkms
по шедулеру дёргается приложение, которое находит пользователя, который был неактивен более месяца.
 

zerkms

TDD infected
Команда форума
Fortop
что уже 100% должно быть выполнено.
уверен?

$ed::registerEvent('Ticket','notifyBoss', $ticket_id, '2 day');
$ed::registerEvent('Ticket','notifyUser', $ticket_id, '1 day');
вот код флопика. через полдня после выполнения этого кода тикет УДАЛЯЕТСЯ. совсем удаляется из базы. или закрывается.
что и кому теперь будет отправляться?
 

zerkms

TDD infected
Команда форума
Fortop
бррррр....... а кто событие вызывает? т.е. этот кто-то не
постоянно лопатит список шедулера.
или я неверно толкую термин "лопатит"?

в моём варианте делается запрос
SELECT * FROM `tasks` WHERE `when_to_invoke` <= NOW()

в вашем варианте
SELECT * FROM `events` WHERE `created_at` + `period` <= NOW()

в чём принципиальная разница?
 

Fortop

Новичок
P.S. А давайте флоппик будет сам разъяснять работу своего кода? :)
 

zerkms

TDD infected
Команда форума
флоппик
верно. твоя функция ничего не сделает. и равно как и в моём решении - вызовется событие, которое не сделает ничего.

в чём всё таки разница?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Не, я подожду пока вы подеретесь =)
Я ж говорю, я вообще уже после проведенных тобой уточнений не вижу разницы между первым и вторым вариантом :)
 

zerkms

TDD infected
Команда форума
флоппик
между первым и вторым вариантом разница кардинальная:
первый вариант хранит лог "что уже было запущено", второй - что мы будем запускать в будущем
второй аналогичен твоему (вот только я предложил сразу указывать "когда запускать", а ты разбил на 2 куска: "когда добавили + период").
 

флоппик

promotor fidei
Команда форума
Партнер клуба
флоппик
верно. твоя функция ничего не сделает.
не совсем. я писал, что в зависимости от результатов работы функции (в нашем случае true/false) шудулер либо удалит, либо продлит задание.
Fortop правильно сформулировал, я предлагаю хранить записи о том, кто должен проверить необходимость произведения каких либо действий по достижению определенного периода времени.

Это псевдокод, а не руководство к действию.

По моему мнению, с _теоретической_ точки зрения нет никакой разницы между первым и вторым описанием решения, которые ты привел.

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

zerkms

TDD infected
Команда форума
Fortop
Я уже писал, в шедулере лежит лишь выполняемая часть.
Аудиторы(лежащие в выполняемой части) "лопатят" собственные маленькие списки.
слишком много воды. частного решения ты не предложил, даже несмотря на то, что в вот тут: http://phpclub.ru/talk/showthread.php?postid=896090#post896090 я пытался выудить - как же что хранится
но от тебя только "аудиторы, шедулеры"...
 
Сверху