[Zope-it] IOError

Giorgio A. jh@libero.it
Tue, 19 Jun 2001 21:28:16 +0200


Messaggio in formato MIME composto da piy parti.

------=_NextPart_000_001B_01C0F906.C0F251C0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by smtp1.cubecom.it id f5JJRRR44706

buongiorno a tutta la lista !
vi scrivo sperando che qualcuno mi dia una mano a risolvere questo
fastidioso problema:

devo inviare da zope degli SMS ad un certo numero di utenti di cui prendo=
 i
dati dal mio fido DB postgres. Il servizio di SMS-gateway a cui mi appogg=
io
richiede che io uploadi via ftp un file contentente gli sms da inviare, u=
no
per ogni riga, ed in seguito un file di conferma, che ha l'unico scopo di
far capire al loro spooler di invio che la mia lista =E8 stata tutta uplo=
adata
(il nome del file, 'do_send', la dice tutta sul suo compito!)
Fin qui nessun problema: scrivo uno script in python che mi genera i file=
s
richiesti, e mi appoggio ad un'altro script codato da qualcun'altro per f=
are
l'upload via ftp.
Il problema =E8 che ogni tanto, apparentemente senza nessuna logica, (dic=
iamo
mediamente una volta su dieci) il buon zope se ne esce con uno ZopeError:

  Error Type: IOError
  Error Value: [Errno 5] Input/Output error

l'ultimo riferimento =E8:

  Object: upload_sms
  Info: ((9895681,), {}, None))
  File /home/zope/zope/Extensions/upload_sms.py, line 174, in main
  IOError: (see above)

il funzionamento del sistema che ho messo in piedi =E8 il seguente:

1) genero un 'token' che identifica l'operazione, per evitare che operazi=
oni
di invio SMS concorrenti possano andare in conflitto (a maggiore garanzia=
 di
ci=F2, ogni sera impacchetto tutti i files generati)

<dtml-call "REQUEST.set('token', _.whrandom.randrange(1,9999999))">

2)itero su :
<dtml-call "python.send_sms(mittente, destinatario, body, token)">
che apre il file sms_'token'.txt in modo append (se non esiste, python lo
crea automaticamente) e ad ogni ciclo scrive una riga corrispondente all'
SMS da inviare. Questa istruzione =E8 in genere all'interno di una iteraz=
ione
su una SELECT sul DB.

3) terminata l'iterazione, chiamo (una sola volta!)
          <dtml-call "python.upload_sms(token)">
che, nell'ordine,
- crea un file sms_'token'.txt.do_send (serve per dare il 'via libera' al=
lo
spool)
- crea un file asc_'token' contenente la lista di files da uploadare (=E8=
 una
specifica di funzionamento dello script python che uso per fare l'upload
FTP)
- invia il tutto via FTP
- genera un report dell' upload, segnalando il successo o il fallimento

il tutto funziona quasi sempre egregiamente; quando va in ZopeError viene
eseguito solo lo step 2, cio=E8 viene generato correttamente il file
sms_'token'.txt ma gli altri files vengono ignorati.

Se qualcuno ha qualche idea su come risolvere questo fastidioso problema,=
 si
faccia avanti !!! :-)
Se qualcun'altro invece pu=F2 trarre qualche spunto dagli scripts che all=
ego,
tanto meglio!

cordiali saluti a tutti,

Giorgio A.

------=_NextPart_000_001B_01C0F906.C0F251C0
Content-Type: application/x-zip-compressed;
	name="sms.zip"
Content-Disposition: attachment;
	filename="sms.zip"
Content-Transfer-Encoding: base64

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
AA==

------=_NextPart_000_001B_01C0F906.C0F251C0--