На ум сразу приходят два варианта:
1. запускать "мигалку" отдельным процессом через
system()
2. реализовать очередь задач и в бесконечном цикле выбирать задачу из этой очереди и выполнять её. Например добавляем задачу:
2017-12-04 9:00:00 Включить лампочку
в функции switchOver() пишем код, который добавляет задачу: 2017-12-04 9:00:02 Выключить лампочку
в функции выключения - код добавляющий: 2017-12-04 9:00:04 Включить лампочку
И так далее.
Вначале бесконечного цикла происходит выборка задач на текущее время и отрабатываются.