Ben uzun bir mysql kuyruk var. Ben her kuyruğunu işler 1 işçi komut dosyası var.
Bu işçi çalışıyor gibi ancak, veritabanı güncelleme ya da yeni bir satır ekler almak olabilir.
bir örnek işçi komut
get_current_queue = SELECT from queue...
while(get_current_queue) {
update_current_row_from_queue "processing"
//some cpu intensive processing here that takes varying amount of time.
}
Sorun işçi komut verilen zamanda kuyruk ne kadar süre bağlı olarak zaman farklı miktarda alır, ve ne kadar her cpu işlem (ex için video dönüştürme) almasıdır.
İlki çalışırken ben başka bir işçi komut dosyası çalıştırdığınızda, bu yüzden henüz ilk işçi tarafından kuyruk veritabanında "işlem" olarak işaretlenmiş sıra, ikinci işçinin yapılacaklar listesi üzerine düşecek.
Ben bu sorunu yaklaşım nasıl bilmiyorum.
Bir işçi çalıştırıldığında, ben bu yüzden sadece bu işçi çalıştırmak olacaktır bu toplu işaretlemek için bir yol gerekir.
Bu çalışırken yeni satırlar eklenir sonra ben başka bir işçi başlatmak için seçerseniz ve, çalışabilirsiniz.