Hirdetés

Új hozzászólás Aktív témák

  • K1nG HuNp

    őstag

    hali, gózgatok most a 2 évnyi nodeozas után és kicsit gondolkodóba estem..

    ugy go-ban a gorutinessal tudunk több "szálon", paralell kódot futtatni, a nodeban meg a promiseokkal..

    Egyik nyelvben sem lehet már elindított gorutinet vagy promiset kívülről cancellelni, azaz ha elindítod az adott fvnyt (rutine, promise..) akkor ő a belső logikája szerint végig fog futni akár mi van.

    van olyan nyelv/megoldás ahol az így hívott paralell függvények cancellelhetőek? úgy értve cancellelhetőek hogy jár a futása során az 56. sor kiértékelésénél, kívülről jön a cancel és fogja és bezár

    illetve ha nincs, akkor miért nem baj ez hogy nincs? nekem most adatbázis olvasás történik paralell (dynamodb, ne menjunk bele) a lényeg az hogy küldök x kérést, x gorutine, és a http kérést handlelő fvt blokkolom amíg az összes gorutine nem jött vissza válasszal vagy amint 1 darab is hibával tér vissza. na ez mind fasza és jó, de megjön 1 error és a többi x-1 darab gorutine ugyan úgy lefut.

    mint mondtam db olvasás tehát teljesen idempotens, kárt nem fognak tenni a lefutó gorutinek.. csak itt kezdtem el gondolkodni :D ugye nodeban ez a promise.all, ott is mint utánaolvastam (eddig sosem kellett lol..), úgyan úgy lefut az összes többi promise.

    viszont mi van nem idempotens dolgokkal? adabázisoknál ugye erre vannak a tranzakciók, meg valami még dereng Gajdos úr órájáról is, szóval hogy adatbázisoknál is hasonlóan lefut a beérkező tranzakció összes eleme, csak ott azzal van kiküszöbölve a hiba után is lefutó szálak/fvnyek problémája, hogy rollbackelődik az egész a tranzakció előtti állapotra nem?

    fú bocsi ha szerte szét van a komment, azért remélem átment a lényeg

    [ Szerkesztve ]

    (raw_item.get("pk").unwrap().as_s().unwrap().to_string()).split("#").collect::<Vec<&str>>()[1].to_string()

Új hozzászólás Aktív témák