Изпълнявам някои задачи чрез django-celery (с rabbitmq като бекенд), задачите отнемат време и интензивно натоварват процесора.
Получих 2 работни екземпляра Ec2 (единият е малък, а другият е среден с висок процесор).
Настроих малкия екземпляр да изпълнява 1 едновременна задача, а средния да изпълнява 4. Това работи добре за мен. Но понякога в монитора на целина виждам, че малкият екземпляр работи върху задача и още 2 или 3 задачи са в състояние „ПОЛУЧЕНИ“ (присвоени на малкия екземпляр), докато средният екземпляр не прави нищо. В идеалния случай id като средният екземпляр да има предпочитание пред малкия, но в този случай, ако малкият е в неговата едновременност, задачата трябва да премине към средния. Изглежда малкият екземпляр хапе повече, отколкото може да дъвче.. като при разпределянето на задачи за себе си, които не може да започне в момента.
Има ли начин работниците да приемат само задачите, които могат да започнат в този момент?
Екранна снимка: http://dl.dropbox.com/u/361747/task-state.png . Работникът, започващ с domU, е малък, този, започващ с ip, е среден.