2012-09-24 15 views
7

Tüm iş kolları bir Gearman iş sunucusunda nasıl listelenebilir? Tüm çalışan konuları listeleyebileceğim ve durumlarını sorgulayabileceğim bir izleme yaklaşımı bulmaya çalışıyorum.List Gearman iş kolları

'status' ile çalışan işleri ve 'worker' (http://gearman.org/index.php?id=protocol'da açıklandığı gibi) listeleme, işlevleri ve çalışanları listeler, ancak iş tanıtıcıları listelemez. İş tanıtıcısı, GET_STATUS vb. Yapmak için gereklidir.

İzlemeyi işten ayrıştırmayı denemeye çalışıyorum ve bu nedenle JOB_CREATED paketinde iade edilen iş işlecine sahip değilim.

+0

izlemek için? Esasen aynı şeyi yapmak istiyorum - arka plan işlerini gönderin ve diğer ayrı süreçlerin bunları izlemesine izin verin/sonuçları gelecekte belirlenemeyen bir zamanda toplayın. Bunu kolaylaştırmak için tutamaç kimliğini ayrı bir iş olarak göndermeyi düşünüyorum. – goat

+0

Maalesef, hayır - İş tutamacını işten kaydetmem gerekmiyor Gönderme yanıtı –

+0

İşi kaydedebilir misin? Ayrıca, sadece iş adında bir db tablosu oluşturabilirsin ... bir satır ekleyebilirsin, insert eyleminden kimliği al ve verideki kimlik de dahil olmak üzere arka plan dişli işini başlat. Şanzıman işinde her eylemden sonra db günceller. Sonra monitörünüzün komut dosyası sadece db'yi kontrol etmeye devam ediyor ... hatta dişli işlerini izlemek için bir json servisi bile oluşturabilirsiniz. Şanzımana gerçekten aşina olmadığım için doğal bir dişli çarkı metodu olup olmadığından emin değilim, ancak bu belki de daha kolay olurdu ve aynı zamanda herhangi bir platform tarafından dişli çarkı desteğine bakılmaksızın kullanılmasına da izin veriyor. – user1641165

cevap

1

https://github.com/brianlmoon/GearmanManager yönetme ve görüntüleme için tüm pakettir, orada Gearman yöneticilerin bolluk vardır.

veya

https://github.com/yugene/Gearman-Monitor Ya kullandığım bir Hiç bir çözüm bulmak mı https://github.com/liorbk/php/blob/master/GearmanTelnet.php

+0

Sanırım soruyu yanlış anlıyorsunuz. Tanımladığınız tüm yaklaşımlar, yönetici statüsünü kullanır - bu durum 'durum' ve 'işçi' komutlarını gönderir. Bunların çıkışı, aradığım şeyi sağlamıyor. –

+1

Evet, bunun için üzgünüm şimdi sorunu görüyorum. http://www.php.net/manual/en/class.gearmantask.php adresine ve geri arama işlevlerini ayarlamaya çalıştım, örneğin http://www.php.net/manual/en/gearmanclient.setstatuscallback .php ama bu soruya cevap vermeyi de düşünmüyorum. Afedersiniz –