2011-07-01 47 views
6

Bizim kereviz arka planımızla çok çatlaklı sorunlar yaşıyoruz. Değişimi her ne zaman değiştirdiğimize baktığımızda daemon'u yeniden başlatmak için bir kumaş dağıtım senaryosu kullanıyoruz, ancak bazı sebeplerden dolayı bu büyük sorunlara neden oluyor.Kereviz ile ilgili sorunlar

Dağıtım komut dosyası çalıştırıldığında, kereviz işlemleri bazı sözde ölü durumda bırakılır. Onlar (maalesef) hala tavşanmq'den görevler alacaklar, ama aslında hiçbir şey yapmayacaklar. Şaşırtıcı bir şekilde kısa bir inceleme, bu durumda her şeyin "iyi" gibi gözüktüğünü gösterir, celeryctl durumu bir düğümü çevrimiçi gösterir ve ps aux | grep kereviz 2 çalışan süreçleri gösterir.

Ancak denemeden elle durdurmak aşağıdaki hatası /etc/init.d/celeryd çalıştırmak için:

start-stop-daemon: warning: failed to kill 30360: No such process 

celeryd başlangıç ​​çalıştırma girişimi bu durum düzgün çalışması için görünür, ancak aslında yok iken hiçbir şey değil. Sorunu düzeltmenin tek yolu, çalışan kereviz işlemlerini el ile öldürmek ve sonra yeniden başlatmaktır.

Burada neler olup bittiğine dair bir fikrin var mı? Ayrıca tam bir onaylama da yoktur, ancak sorunun birkaç gün sonra (bu, şu anda bir test sunucusu olmadığı için) hiçbir dağıtım yapmadan da geliştiğini düşünüyoruz.

+0

Bir dağıtım betiği de kullanıyoruz, ancak kumaşla değil, sadece kabuk komutunu celeryd python'dan yeniden başlatıyoruz ve her şey iyi çalışıyor. Ben çalışma işlemi almak için bir bash talimatı nedeniyle, cleryd.sh betiğinin ubuntu'nun eski versiyonunu 10.10'dan az olan bazı konularını biliyorum. Hangi işletim sisteminde çalışıyorsunuz? Kereviz hangi sürümü? –

+0

Komut dosyanız daemon'u tam olarak nasıl başlatıyor? Sadece bir "-9" ya da benzer bir şeyden mi ateş ediyor? –

+0

Init.d komut dosyasının stop komutunu tetikler. Bu, celery'nin github katkı dosyalarından alınan init.d komut dosyasıdır. Durmak yerine yeniden başlatmayı tetikler, sonra başlatır, ama karanlıkta bir çekim olarak değiştirdim. Init.d betiği start-stop-daemon komutunu çağırır – John

cevap

5

Kurulumunuzu neyin tetiklediğini bildiğimi söyleyemem, ama kereviz işletmek için her zaman süpervizör kullandım - belki sorun yükseliş ile ilgili? Ne olursa olsun, ben hiç bunu süpervizörün üstünde çalışan kerevizle deneyimlemedim.

iyi ölçmek için, burada kereviz için örnek bir gözetmen yapılandırma var: my fab komut

[program:celeryd] 
directory=/path/to/project/ 
command=/path/to/project/venv/bin/python manage.py celeryd -l INFO 
user=nobody 
autostart=true 
autorestart=true 
startsecs=10 
numprocs=1 
stdout_logfile=/var/log/sites/foo/celeryd_stdout.log 
stderr_logfile=/var/log/sites/foo/celeryd_stderr.log 

; Need to wait for currently executing tasks to finish at shutdown. 
; Increase this if you have very long running tasks. 
stopwaitsecs = 600 

yeniden başlatma celeryd sonra sudo supervisorctl restart celeryd veren kadar basittir.