Izveidot, ka /map/submit
funkcija saglabā request, piešķir map_uuid un nekavējoties atdod atbildi - šobrīd liekot app gaidīt 2min, nereti pazūd savienojums ar serveri
Pēc tam izveidot skriptu worker_map_processor.py
, kur ar multiprocessing Process tiek palaisti n args definētas instances no funkcijas, kuras paralēli visu laiku lasa no file system, kura karte nav apstrādāta un tad to apstrādā.
Izveidot kopēju “lock” failu, lai paralēlie procesi vienlaicīgi vienu un to pašu karti nepaņemtu un tad izmantot daļai, kura nevar izpildīties paralēli šādi
xxxxxxxxxx
21with FileUtils.FileLock('./common_lock'):
2# critical section
http://share.yellowrobot.xyz/quick/2023-6-6-6E997506-2733-4FD6-B320-2DDDF5F284C1.zip
Izveidot funkciju /map/status
ar kuru iegūt informāciju par to vai karte ir gatava, kura stadija šobrīd ir un cik aptuveni % no visa gatavs, nepieciešams processing laikā saglabāt šo informāciju, atbilde piemēram
x1{
2is_success: truiem,
3overall_progress: 55.2,
4current_phase: "LOOKING_FOR_WALLS",
5error_code: "OK"
6}
Arī pie status noteikšanas jāsūta api_key un map_uuid
current_phase ir str, enum, kuru tulko app pusē
Kad karte pabeigta overall_progress = 100
Visas datu struktūras sagatavot kā dataclass
un serializējamas uz dataclass_json