1 pièce(s) jointe(s)
créer un serveur de facturation
Bonjour,
Je développe en ce moment un serveur de facturation qui sera, si tout va bien. proposé dans openErp. Il ne s'agit encore que d'un prototype Les règle ont été défini dans la rubrique licence mais je ne sais pas a quelle licence elle correspond exactement C'est l'une des raison pour laquelle je ne souhaite pas pour le moment publier la conception.
Question : A quelle licence corresponde ces règles ?
Pour le moment, l'idée consiste en un simpe thread qui gère un compte à rebours dont l'état pourra être afficher a tout moment et au bout duquel un signal sonore (beep code ascii 7) retentira et le programme se terminera.
Ci-joint le code.
Question :
Pourquoi la différence de temps est-elle incorrecte ?
Merci pour votre aide.
Salutations
Problème à la fin du timer et signal termeted 15 à l'arrêt brutal
Bonjour,
Alors depuis le code a un peu changer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
# Licence : Vous avez le droit de faire usage libre de ce code a des fin privé mais vous devez citer la source. L'usage commercial est interdit mais sera autoriser moyennant payement toute version dérivée de ce code doit rester consultable en ligne et open source même après paiment avec l'obligation de me citer comme auteur. L'ajout d'un autre auteur est autorisé mais pas l'effacement.
import datetime
from threading import *
# code from http://domeu.blogspot.fr/2011/04/time-datetime-manipulation-du-temps-en.html
# Conversion de la date en datetime
#self.now_datetime = datetime.datetime(self.now.year, self.now.month, self.now.day,.time. )
print("Maintenant nous some le : ",self.now.strftime('%d/%m/%y %H:%M'))
# code from http://domeu.blogspot.fr/2011/04/time-datetime-manipulation-du-temps-en.html
# Evalutation de la difference
self.diff = self.alarme - self.now
print ("La différence totale : ",self.diff)
print( "Différence en secondes = %i" % (self.diff.seconds) )
print( "Différence en minutes = %i" % (self.diff.seconds // 60) )
print( "Différence en heures = %i" % (self.diff.seconds // 3600) )
print( "Différence en jours = %i" % (self.diff.days) )
# code from http://docs.python.org/2.7/library/threading.html#timer-objects
# Settings timer
timer = Timer(self.diff.seconds,0,sonnerie)
timer.start()
sonnerie() :
print chr(7)
print chr(7)
print ("timer terminé") |
Malheureusement, maintenant, voilà ce qui se passe.
1. Le tread principal se termine et la console affiche par exemple.
Code:
1 2 3 4 5 6 7 8
|
('Maintenant nous some le : ', '18/08/13 19:59')
('La diff\xc3\xa9rence totale : ', datetime.timedelta(0, 9, 697096))
Différence en secondes = 9
Différence en minutes = 0
Différence en heures = 0
Différence en jours = 0
terminer |
Le programme attend l'heure l'alarme mais a ce moment arrivé, au lieu de faire retentir l'alarme, l'exception suivante est levée et le programme s'arrête brutalement. :
[code]
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 808, in __bootstrap_inner
self.run()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 1080, in run
self.function(*self.args, **self.kwargs)
TypeError: int object argument after * must be a sequence, not function
Que se passe-t-il ?
Si j'arrête brutalement le serveur durant l'attente, l'écran affiche :
Dans le cas ou justement le serveur s'arrête brutalement ou anormalement, j'aurais besoin d'enregistrer l'heure et la date un fichier log afin de pouvoir reprendre correctement la tâche qu'il est a laquelle ce serveur et dédié à savoir gérer un agenda sur open erp avec des patient qui ont des rendez-vous de physiothérapie (kinésithérapie) récurent et facturés.
Comme tous les rendez-vous sont marqué comme effectués et candidat à la date et l'heure de la fin du rendez-vous a moins qu'il n'aie été annulé sans facturation, il est très important que le serveur puisse reprendre correctement son travail en cas de panne.
Mais voilà, puis-je intercepter ce signal Terminated: 15 comme j'intercepterais une exception ?
Merci pour votre aide
Salutations