Xor

<<< Назад

Модуль Todoer

Продолжение развития модуля календаря-планировщика

В продолжение предыдущего
Гит тут
Модуль у меня выполняет функции календаря со списками дел + планировщика выполнения задач. Обе эти функции существуют паралелльно и пользоваться обеими сразу необязательно)
Рассмотрим сначала календарь .
Единица информации в модуле - задача.
У задачи должно быть имя. Оно может быть и неуникальным. Только сами не запутайтесь(
Задача может иметь временные рамки - начало и конец, либо не иметь их совсем - быть бессрочной.
ris1
Если у задачи есть начало и конец, она может быть повторяющейся и ей можно задать период повторения - установку нового начала и конца. Так же, можно установить срок повторов(Повторять до) - до абсолютного момента времени - например, создать задачу Тест с 8:00 01/01/21 до 16:30 02/01/21 с повторами каждый второй месяц до 31/12/21
ris2
Задаче можно установить напоминание - относительное (за несколько минут, часов, ...) или абсолютное (в 12:30 20/02/2021). Задаче без срока можно установить только абсолютное время напоминания, естественно. Напоминание может быть простым - Алиса просто произнесет напоминание в нужное время, или можно запустить свой код.
ris4
И еще задача может быть выполненой и, соответственно, невыполненой (вкладка Основное)
У задачи может быть установлен признак Автозавершение по сроку, при его установке задача считается выполненной при наступлении времени конца задачи.

К моменту начала и конца задачи можно привязать выполнение кода. Причём, при начале задачи код всегда выполняется, а код для конца задачи выполнится только при установке признака выполненной задачи - либо если вручную поставить галочку Готово, либо при установленном признаке Автозавершение при достижении времени конца (обе галки ставятся на вкладке Основное).
ris3

Про категории задач:

Тут тоже не без выкрутасов(
cat1
Если категории не установлен цвет, то задачи этой категории будут скрыты и их можно увидеть только в админке. В этом есть тайный смысл, который будет раскрыт позже.
Еще у категорий есть признак Праздники, он нужен для того, чтобы одну категорию пометить 1 - Календарные праздники и выходные дни, а вторую пометить 2 - для суббот и воскресений, которые оказались рабочими. Эти неочевидные вещи нужны для работы внутренней процедуры модуля, подгружающей производственный календарь РФ.
Раз в сутки для обновления праздников у меня запускается скрипт:

include_once('./modules/todoer/todoer.class.php');
$calendar = new todoer();
$calendar->clnd_getholidays();

Календарь позволяет вести, так сказать, дела вручную, а возможность выполнения кода по времени позволяет использовать этот модуль и как планировщик выполнения внутрисистемных задач - тех, повторяющихся во времени или имеющих точную привязку к моменту.
Сразу скажу - модуль не оперирует секундами, его квант времени - минута. Но при этом не используются циклы, а только привязка к событию minutely. По статистике все задачки у меня успевают выполниться в первые несколько секунд каждой минуты.

С помощью одной задачи легко задать работу, например, будильника, который звонит только по рабочим дням, устанавливать/снимать режим энергосбережения и т.п. и т.д.

Подробнее об использовании модуля как планировщика в системе, об иерархии задач, о создании задач из кода - в следующей статье
Спасибо за внимание!

Обсуждение (5) (19)

Смотрите так же:
18.04.2021 Переезд на мастер спустя год
24.03.2021 Ещё о старте/остановке МДМ в Винде
06.01.2021 Для виндузятников - перенос бд на рам-диск
22.11.2020 Календарь-планировщик
01.08.2020 Irbis как терминал
18.05.2020 Китайская камера rtsp + vlc как перекодировщик для html
12.05.2020 Опыт интеграции МДМ с Я.Алисой ещё одним способом - без белого адреса, москита, ПУ.(дополнено)
07.05.2020 Поправим формат даты в Панели управления
11.04.2020 Баловство с шаблонами
26.03.2020 Простые правила - вариант модуля. ч. 2
25.03.2020 Простые правила - вариант модуля
20.12.2019 расширение средств работы с events updated
20.11.2019 По следам наших выступлений - сколько мы наэкономили?
04.11.2019 Группа как объект - экономим на коде - 2
26.10.2019 Прикручиваем Grafana к Мажордому
11.10.2019 Группа как объект - экономим на коде
25.09.2019 Если у вас нет телеги...
11.09.2019 Датчик присутствия из ип камеры
30.07.2019 Win-платформа-замена ffmpeg для получения скриншотов из rstp - потока
24.06.2019 Форматированный отчет в телеграм - имитация таблицы
30.04.2019 Используем зомбо-ящик в Мажордомо
24.03.2019 О среднем в Мажордомо
31.10.2018 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений
16.09.2018 Перезагрузка Мажордомо в Win-системах

Домодедово, Россия

На форуме: xor