2013-05-04 7 views
5

Ich versuche Gearman zu verstehen, aber bis jetzt kann ich nicht herausfinden, was der Unterschied zwischen Aufgabe und Job ist.Was ist der Unterschied zwischen Gearmans Job und Aufgabe?

Ich versuche, einen Client zu erstellen, der regelmäßig (alle 10 Minuten) eine XML-Seite parsen wird. Was ist der beste Ansatz?

+1

Ein Job gibt ein Handle zurück und es wird in Zukunft asynchron ausgeführt, während eine Aufgabe blockiert wird und wenn der Aufruf zurückkehrt, hat er die Arbeitseinheit für Sie erledigt. Wenn Sie XML nach einem Zeitplan analysieren, würde ich den Parser einfach direkt von cron aus aufrufen; Ein Job Server ist nützlicher, wenn Sie eine Reihe von Jobs haben, die auf einer nicht vorhersagbaren Basis erstellt werden (sagen wir Benutzeranfrage) und sie müssen in einer geordneten, ressourcenlimitierten Art und Weise ausgeführt werden. – halfer

+0

@halfer - Ich denke nicht, dass die Aufgabe notwendigerweise blockieren muss. Einige Aufgaben in einem Job können unabhängig voneinander für Beispiele in separaten Threads ausgeführt werden, und sie können so erstellt werden, dass sie sich mithilfe der Methode join() zum Abschluss des Jobs verbinden. – nanosoft

Antwort

2

Das Handbuch offers a terrific explanation:

Jobs vs. Aufgaben

Eine Aufgabe ist jede Anforderung oder die Kommunikation zwischen dem Client und dem Job Server. Eine Aufgabe ist in der Regel Kommunikation über ein Job. Aufgaben könnten oder what is the status of this job sein. Ein Job ist etwas, was der Arbeiter tut, ständig auf dem Job-Server zu warten ihm sagen, wann zu starten und mit welchen Argumenten. Clients senden Jobs und fragen nach Status über Jobs (beide Dinge werden als Aufgaben betrachtet). Arbeiter führen die Arbeiten tatsächlich aus.