Xor

<<< Back

Модуль 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. По статистике все задачки у меня успевают выполниться в первые несколько секунд каждой минуты.

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

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

Discuss (4) (14)

See also:
2021-01-06 Для виндузятников - перенос бд на рам-диск
2020-11-22 Календарь-планировщик
2020-08-01 Irbis как терминал
2020-05-18 Китайская камера rtsp + vlc как перекодировщик для html
2020-05-12 Опыт интеграции МДМ с Я.Алисой ещё одним способом - без белого адреса, москита, ПУ.(дополнено)
2020-05-07 Поправим формат даты в Панели управления
2020-04-11 Баловство с шаблонами
2020-03-26 Простые правила - вариант модуля. ч. 2
2020-03-25 Простые правила - вариант модуля
2019-12-20 расширение средств работы с events updated
2019-11-20 По следам наших выступлений - сколько мы наэкономили?
2019-11-04 Группа как объект - экономим на коде - 2
2019-10-26 Прикручиваем Grafana к Мажордому
2019-10-11 Группа как объект - экономим на коде
2019-09-25 Если у вас нет телеги...
2019-09-11 Датчик присутствия из ип камеры
2019-07-30 Win-платформа-замена ffmpeg для получения скриншотов из rstp - потока
2019-06-24 Форматированный отчет в телеграм - имитация таблицы
2019-04-30 Используем зомбо-ящик в Мажордомо
2019-03-24 О среднем в Мажордомо
2018-10-31 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений
2018-09-16 Перезагрузка Мажордомо в Win-системах

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

На форуме: xor