2016-08-10 4 views
0

Was ist die beste Lösung zum Erstellen einer Timeout-Funktionalität für Mitarbeiter eines Pools mithilfe von PHP Pthreads-Bibliothek?Timeout-Funktionalität für Worker in einem Pool

Meine Idee ist es, Arbeiter von innen nach N Sekunden zu töten, kann aber auch von außen getan werden.

Eine Möglichkeit kann ein Thread sein, der andere Threads tötet?

Tnx im Voraus

Antwort

0

Wenn Ihre Arbeitsthreads frei sind, sind sie wahrscheinlich für mehr Arbeit in pthread_cond_wait() zu warten.

Um ein Zeitlimit zu implementieren, können Sie das einfach in pthread_cond_timedwait() ändern und den Thread entsperren lassen und beenden, wenn das Zeitlimit abgelaufen ist.

+0

Tnx @caf. Es gibt ein Missverständnis, denke ich. Ich meine, dass ich eine Auszeit für aktive Arbeiter bauen muss, nicht für die müßigen. – cleaversdev

+0

@cleaversdev: Das ist viel schwieriger, um richtig zu machen, weil Sie sicherstellen müssen, dass Sie den gemeinsamen Status nicht inkonsistent verlassen. Der beste Weg ist wahrscheinlich, dass die Worker-Threads selbst regelmäßig nach der Zeitüberschreitung suchen - auf diese Weise können sie halbfertige Arbeiten säubern und sauber beenden. – caf

Verwandte Themen