Zadania Cron wymagają ustawienia czasu, w którym są uruchamiane, nie mogą (tak, możesz to zhakować, mając skrypt, który edytuje crontab, ale nie powiedziałbym, że to bardzo dobry pomysł) mieć czas na dynamiczne uruchamianie. Oznacza to, że zasadniczo masz dwie opcje:
1) Ustaw cronjob, aby było uruchamiane co minutę i użyj pliku tymczasowego, którego dotykasz, aby powiedzieć, kiedy ostatnio uruchomiło jedno z zaplanowanych zadań Za każdym razem, gdy zostanie uruchomione, sprawdza, czy było zadanie do uruchomienia między ostatnim znacznikiem czasu plik tymczasowy i aktualny czas, a jeśli istnieje, uruchamia zadanie. To rażące, ale proste rozwiązanie.
2) Nie używaj crona. Utwórz demona, który sprawdza, w jakich godzinach zadania muszą być uruchomione i umieszcza je w kolejce priorytetowej, a następnie wyskakuje najwcześniejszy element i usypia, dopóki nie nadejdzie czas na uruchomienie tego zadania. Uruchamia zadanie i wstawia je ponownie, aby było uruchamiane 24 godziny w przyszłości, i powtarza się. To rozwiązanie jest zdecydowanie bardziej eleganckie, ale wymaga też więcej pracy.