В общем я продолжаю бороться с мельницамитредами. Опять все переписано, опять код мне нравится (теперь еще больше :) ). Да еще и task'и выполняются в тредах. Тоесть все должно быть супербыстро :)
Но есть одно «но». Есть task'и, которые можна выполнять только если все его task'и-зависимости выполнены. Сейчас я делаю так: по окончанию поточного task'а перезапускаю все task'и, которые зависят от него. Все вроде ок, но в 1 случае(запуске) из ~9 я получаю облом
vv@vv-Latitude-E5520 /dev/shm/portage-cache-20121109-130326-UTC $ grep 'd inserts' *
001_architectures.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
002_platforms.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
003_arches.log:[2012-11-09 15:03:27] INFO: Faileddddd inserts: 0
004_keywords.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
005_profile_statuses.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
006_profiles.log:[2012-11-09 15:03:27] INFO: Faileddddd inserts: 153 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< HERE
007_mask_states.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
008_sources.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
009_eapis.log:[2012-11-09 15:03:27] INFO: Faileddddd inserts: 0
010_content_item_types.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
011_switches.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
021_repositories.log:[2012-11-09 15:03:26] INFO: Faileddddd inserts: 0
031_categories.log:[2012-11-09 15:03:27] INFO: Faileddddd inserts: 0
041_packages.log:[2012-11-09 15:03:27] INFO: Faileddddd inserts: 0
vv@vv-Latitude-E5520 /dev/shm/portage-cache-20121109-130326-UTC $
Правильно ли понимаю что мне в данном случае должно помочь выставление приоритета для тредов? То есть нужно построить граф зависимостей, расставить приоритеты (чем «важнее» зачада - тем больше приоритет) для задач и запускать тред с task'ом с соотвествующим приоритетом. Может есть какая то либа для сего чтобы не плодить велосипеды? У меня сейчас зависимость задается в лоб
Всяческие идеи и напутствия приветствуются