Re: Fw: Re: Co 30 sek.
Jak podają anonimowe źródła, przepowiedziano, że Leonard Milcin, Jr napisze:
> >>Bynajmniej tym sposobem nie uruchomisz skrypta dokładnie co 30s.
> >>Jeżeli chce, żeby uruchamiać coś naprawdę co 30 sekund, to też może użyć
> >>crona. Wystarczy, że o każdej pełnej minucie uruchomi dwa zadania.
> >>1:
> >>do_this();
> >>2:
> >>sleep 30 && do_this();
> >>Proste, i zawsze będzie się uruchamiało w spodziewanych momentac, tj. o
> >
> > ^^^^^
> >>pełnych minutach i w ich połówkach.
> >
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> >do_this() {
> > sleep 10
> > }
>
>
> Nie bardzo rozumiem twojej odpowiedzi. Może jakieś słowo komentarza?
To był komentarz...
> Miało być co 30 sekund, a nie co 10s+czas uruchomienia procedury.
> Chyba, żę się mylę.
Nie bierzesz pod uwagę, że zrobienie czegokolwiek zajmuje
zwykle pewien czas. Jeśli do_this wykonuje się przez 10s,
to od pierwszego uruchomienia do_this do drugiego zejdzie
40+ sekund, a nie 30. Dodatkowo ten czas wcale nie musi być stały.
-Jeśli do_this wykonuje się w 15+s, a potencjalnie zacznie się
jakiś wyścig.
-Jeśli do_this albo cokolwiek na wyjściu, wejściu czy gdzie bądź
bazuje na tych 30s, to rezultaty mogą być nieoczekiwane.
Wyeliminowanie konieczności czekania na zakończenie do_this
częściowo eliminuje drugi problem, ale nie pierwszy.
Innymi słowy - taka realizacja jest potencjalnie niestabilna
i dołożenie do tego crona nie uczyni jej bardziej stabilną.
Tego typu rozwiązanie nadaje się do zastosowania w _pewnych przypadkach_
(po zastosowaniu blokad, sekcji krytycznych i innych tego
typu rozwiązań potencjał do wykorzystania zwiększa się, ale
wciąż nie nieskończony).
Co innego, gdybyśmy chcieli uruchamiać coś 30s po tym, jak
poprzednia kopia zakończyła działanie, ale zadanie _nie było_
takie.
Pozdrawiam
--
Jacek Kawa **Ray, następnym razem, jak ktoś zapyta cię, czy jesteś
bogiem, to odpowiedz, że tak...**
Reply to: