Kom ihåg mig?
Home Menu

Menu


bästa approch med stora mängder webservice anrop?

Ämnesverktyg Visningsalternativ
Oläst 2015-06-17, 18:27 #1
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Question bästa approch med stora mängder webservice anrop?

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?
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-17, 21:35 #2
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
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.
digiArt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-17, 22:16 #3
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
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.
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-18, 00:22 #4
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
Du borde kunna få ner allt till några sekunder.

Kör förfrågningarna parallellt bara så!
x264 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-18, 02:20 #5
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Citat:
Ursprungligen postat av x264 Visa inlägg
Du borde kunna få ner allt till några sekunder.

Kör förfrågningarna parallellt bara så!
Kan du förklara lite mer, eller länka till någon ex på nätet eller så?
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-18, 02:23 #6
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
x264 x264 är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2013
Inlägg: 342
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
x264 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-18, 09:07 #7
SvanteH SvanteH är inte uppkopplad
Medlem
 
Reg.datum: Jan 2015
Inlägg: 118
SvanteH SvanteH är inte uppkopplad
Medlem
 
Reg.datum: Jan 2015
Inlägg: 118
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.
SvanteH är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-18, 09:24 #8
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Citat:
Ursprungligen postat av SvanteH Visa inlägg
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.
Det är rätt gissat, PTS har även en metod som kan ta emot flera nummer kommaseparerat.
Kolla deras dokumentation så finner du.
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-18, 09:24 #9
AmnisJonas AmnisJonas är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2011
Inlägg: 9
AmnisJonas AmnisJonas är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2011
Inlägg: 9
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.
AmnisJonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2015-06-18, 19:28 #10
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Citat:
Ursprungligen postat av SvanteH Visa inlägg
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.
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.
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 00:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017