Newsgroup: it.comp.www.php
Titolo: loop (redirect) alla stessa action passando parametri diversi -> errore

Ho scritto una action che preleva tramite una query i dati di un
record da una tabella di appoggio (creata da più file xml elaborati),
elaboro questo record (oggetto) e lo inserisco dentro una tabella
effettiva di lavoro, una volta eseguite le dovute conversioni.
Successivamente prelevo l'id del record successivo della tabella di
appoggio e lo ripasso alla action.
Di fatto eseguo un loop  richiamando la stessa url ma con un id che
viene incrementato ad ogni chiamata.
 
url: inserisci_nuovi_annunci?id=$id_successivo
 
mi ritrovo questo errore:
il server sta reindirizzando la richiesta per questa pagina in modo
che non possa mai essere completata.
 
Come risolvere?
grazie.
 


Non hai spiegato cosa vuoi fare, hai spiegato come lo fai, difficile 
darti un aiuto così ...
Quando parli di "action" fai riferimento ad un qualche framework 
particolare?
Pur non capendo molto il senso della cosa che stai facendo, mi sento di 
consigliare di:
1) se sai già gli id chiamare l'url tramite cUrl da shell, uno scriptino 
in bash di 3 righe e hai fatto
2) modificare l'url mettendo l'id come parte dell'url stesso, non come 
parametro, ad esempio inserisci/4/aggiorna/pippo
 
Ciao
M
-- 
I fatti mi cosano

Ma di preciso perchè ti serve questo redirect?
Non puoi fare tutto in un ciclo for/while nella prima chiamata?
Allunghi il max_execution_time di conseguenza (e controlla il timeout
di apache) e sei a posto.
 
Se non vuoi far aspettare l'utente davanti alla pagina (cosa a mio
avviso migliore di fargli vedere X refresh di pagina) fai la chiamata
tramite ajax e, se l'utente cambia pagina, fai si che la procedura
salvi qualcosa nel db quando ha finito e così l'utente viene
notificato di quando lo script ha fatto il suo lavoro.

 non possa mai essere completata.
 
Quasi tutti i browser, oggi, se vedono piu` di 4-5 redirect HTTP ti 
presentano il box.
 
L'unico modo e` fare redirect HTML (tramite meta-tag). Cosi`, tra 
l'altro, puoi anche dare un feedback all'utente di quello che sta 
succedendo. Naturalmente i tempi si allungano di conseguenza, ma di 
solito, se ne hai bisogno (sei in un backend), metterci 1 ora o 2 ore fa 
poca differenza.
 
L'alternativa e` usare qualcosa tipo gearman, far fare il lavoro al 
server in background e, tramite ajax, interrogarlo ogni tanto (1 minuti, 
10 minuti, 1 ora, ecc.) per vedere a che punto e`.
 
Bye.

Quello che voglio fare è prelevare i record uno ad uno da una tabella
di appoggio popolata tramite vari file XML di grosse dimensione
(da60MB a 400MB l'uno).
I dati di questa tabella di appoggio (copmposta da circa 700.000
record) li voglio ciclare ed elaborarli uno ad uno per metterli
all'inteno di 1 o più tabelle dell'applicazione vera e propria.
Evitarmi a priori problemi di memoria, e non tanto di timeout, che
comunque gestirei in locale sullo script interessato mettendo il
parametro a 0 di set_time_limit, e pertanto avevo scelto la strada di
passare all'url il parametro id del record successivo presente in
tabella di appoggio rispetto a quello in elaborazione.
In effetti avevo pensato anche, ritrovandomi l'errore, alla strada di
passare l'id non come parametro, ma come pezzo di url misito/azione/id
invece che misito/azione?id=147 come propost da marco.
 
Framework symfony
ORM doctrine
 
Grazie

 Bye.
 
Non conoscevo gearman, grazie per lo spunto


Un lavoro così è compito per comandi da shell
Con Symfony non ne ho ancora creati, ma è possibile e credo che possano 
essere la risposta alle tue necessità, altrimenti rimango dell'idea che 
uno script in bash tramite cUrl o wget sia una soluzione adeguata
wget credo si possa istruire a seguire redirect anche in apparenza 
infiniti. Prova a guardare il manuale
