Kom ihåg mig?
Home Menu

Menu


httpanrop utan svar

Ämnesverktyg Visningsalternativ
Oläst 2010-05-31, 10:09 #1
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
Standard httpanrop utan svar

Hur gör man bäst tidskrävande anrop utan att användaren ska se svaret, eller behöva vänta på svaret?

Exempel 1: En medlem registrerar sig på min sida och får ett "tack för registreringen". Därefter vill jag göra en kreditupplysning på personen genom att göra anrop till ett API på en extern url.
Exempel 2: Ett gränssnitt på min server tar emot ett anrop från en annan server och svarar "ok". Därefter vill jag göra diverse operationer med den data som jag mottagit, efter att jag svarat "ok" till anropande server.

De lösningar hag funderat på är:
- Ett CRON job som gör alla operationer vid ett senare tillfälle. Men det är inte en lösning som passar mig i det här fallet. Jag vill göra dem direkt "on demand".
- Göra externa anropen i en dold iFrame och sätta ignore_user_abort i det anropande scriptet. Funkar i exempel 1, men inte exempel 2.

Finns det någon universallösning med cURL eller liknande?
hoover är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 11:00 #2
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Jag har själv aldrig jobbat med kreditupplysningar, men jag skulle föreslå följande:
Användaren matar in de fält som krävs av dig (registeringsförfarandet) samt de värden som krävs av kreditupplysningen (personnnummer, fullständigt namn, adress).
Därefter så klickar man på "Utför kreditupplysning för att slutföra registreringen".

Då gör den följande:
- Disablar knappen
- Visar en "loading"-knapp/symbol
- Gör en Ajax-request mot ditt script, som i sin tur gör en kreditupplysning
- Får svar tillbaka från scriptet med true/false, 1/0, whatever
- Om kreditupplysningen gick bra: Aktiverar/visar knappen "Skapa kontot" som skapar kontot.

Hoppas att jag förstod problematiken.
eliasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 11:03 #3
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Ursäkta, missförstod det hela. Du vill att användaren inte skall behöva vänta.
Du kan t ex istället skriva ett program/script som lyssnar på någon TCP-port (som är endast öppen lokalt) där du skickar med de parametrar som krävs som kör igång processen "on the demand".
eliasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 12:40 #4
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Du vill alltså utföra tidskrävande anrop baserat på vad användaren fyller i, men du vill inte att det ska ta tid för att användaren inte ska behöva vänta?

Låter lite moment 22.
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 13:08 #5
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Skapa en async request/starta en ny tråd för steg #2.
Efter det får du köra med ngn sorts pollfunktion för att ta reda på status.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 13:42 #6
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
hoover hoover är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2004
Inlägg: 48
Citat:
Ursprungligen postat av dAEk Visa inlägg
Skapa en async request/starta en ny tråd för steg #2.
Efter det får du köra med ngn sorts pollfunktion för att ta reda på status.
Jag har kommit på att jag kan göra ett anrop med curl och sätta timeout till 1 sekund... det är nog den enklaste (= bästa) lösningen för mig.
hoover är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 22:17 #7
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Citat:
Ursprungligen postat av hoover Visa inlägg
Jag har kommit på att jag kan göra ett anrop med curl och sätta timeout till 1 sekund... det är nog den enklaste (= bästa) lösningen för mig.
Det känns lite som ett hack men om det funkar för dig så är det ju bra.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 22:23 #8
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Kreditfrågor brukar gå väldigt snabbt i normalfallet så det bör ju inte vara något problem...
jonny ä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 08:28.

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