нека кажем, че имам python програма whitch искамда тече винаги максимум 10 пъти паралелно с целина / rabbigmq и ако някои от процеса завърши искам да знам за него, така че мога да започна нов процес. Как мога да го направя? някои примери биха били хубави
Отговори:
1 за отговор № 1Даването на пример е трудно, тъй като съобщенията са малко сложни, но това, което можете да направите, е:
- пренапишете програмата си като задача или напишете задача, която извиква вашата програма с помощта на подпроцес
- конфигурирайте целина да има 10 работници
- изпълни колкото се може повече задачи, за да си свърши работата, Celery ще ги добави към опашката си
- Целият ще свърши останалото за вас, след като веднъж приключи работата, още една се стартира, докато опашката не е празна
Алтернативно, ако искате да стартирате задачаръчно след като приключите, можете да конфигурирате Celery, за да изпратите съобщение след неговото приключване (не съм го опитал още, но вижте CELERY_RESULT_BACKEND) След това можете да консумирате тези съобщения и да започнете задачата.