FAQ |
Kalender |
2015-06-17, 18:27 | #1 | ||
|
|||
Mycket flitig postare
|
Hej,
Sitter och programmerar mot PTS webservice i asp .net 3,5. Problemet är att jag skickar upp ca 50k nummer genom en for-loop och väntar in svar en efter en från PTS med en operatör. alltså 1. Ett DataSet med 50k telefonnummer 2. loopar igenom dem 3. för varje loop, gör jag en slagning mot PTS för att få ut operatören. Svarstiden från anropen är ca 0,5 sek, så hela förloppet ta ca 7 timmar!! Hur skulle ni ha hanterat detta? även om det kanske inte går att få ner tiden, så skulle jag vilja kunna presentera för användaren genom en progressbar eller nåt liknande. eller att det tex står och räknar ner antal nummer som är kvar för uppslagningen... Hur gör jag det på bästa sätt? och är det någon som har ett exempel på detta? |
||
Svara med citat |
2015-06-17, 21:35 | #2 | ||
|
|||
Har WN som tidsfördriv
|
Ska vi backa några steg? 50k nummer?
Vad är det du bygger? Och personligen är jag allergisk mot dataset, ineffektivt och låst mot databasens struktur. |
||
Svara med citat |
2015-06-17, 22:16 | #3 | ||
|
|||
Mycket flitig postare
|
bygger ett system för telefonförsäljare där de får Excellistor med ca 50k telefonnummer per lista.
Sedan loopar jag över dessa nummer och för varje nummer skickar jag det i PTS's webserver och väntar på svar, som är i form av en sträng som innehåller vilken operatör telefonnumret tillhör. |
||
Svara med citat |
2015-06-18, 00:22 | #4 | ||
|
|||
Flitig postare
|
Du borde kunna få ner allt till några sekunder.
Kör förfrågningarna parallellt bara så! |
||
Svara med citat |
2015-06-18, 02:20 | #5 | ||
|
|||
Mycket flitig postare
|
|||
Svara med citat |
2015-06-18, 02:23 | #6 | ||
|
|||
Flitig postare
|
Du kör din loop, men i stället för att vänta synkront på dina svar innan du loopar vidare till nästa så kör du bara igenom alla dina loopar utan att vänta på svar innan du går vidare.
Sedan när du väl får svar matar du in de i t.ex. mysql. Därefter kan du exportera till excel eller liknande. Väldigt smidigt. EDIT: Googla på async Senast redigerad av x264 den 2015-06-18 klockan 02:29 |
||
Svara med citat |
2015-06-18, 09:07 | #7 | ||
|
|||
Medlem
|
Det är inte så enkelt att webservice API't klarar anrop med flera nummer samtidigt i stället för 1 per anrop? Det låter väldigt ineffektivt.
|
||
Svara med citat |
2015-06-18, 09:24 | #8 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
Kolla deras dokumentation så finner du. |
||
Svara med citat |
2015-06-18, 09:24 | #9 | ||
|
|||
Nykomling
|
Jag håller med SvanteH om att du skall undersöka om det går att anropa med flera nummer samtidigt.
Annars är det asynkrona anrop som gäller, om du kan så gå upp till 4.5.2 i ramverk, om jag minns rätt så finns inte async keywordet i 3.5. Vad gäller en uppräknande "progess" så kan du titta på SignalR (NuGet) för att pusha uppdateringar från servern. |
||
Svara med citat |
2015-06-18, 19:28 | #10 | ||
|
|||
Mycket flitig postare
|
jo enligt deras dokumentation så har det så att man kan skicka in listan, dock har det faktiskt längre tid att få svar via den metoden än att skicka in en och en.
|
||
Svara med citat |
Svara |
|
|