Voici un exemple de base de code pour montrer la base du bot IRC je en cours d'exécution:Faire quelque chose toutes les 60 secondes, de manière asynchrone
s=socket.socket()
s.connect((foo, 1234))
s.send('NICK foo\r\n')
s.send('USER foo bar baz :qux\r\n')
while True:
readbuffer=readbuffer+s.recv(1024)
temp=string.split(readbuffer, "\n")
readbuffer=temp.pop()
for line in temp:
line=string.rstrip(line)
line=string.split(line)
if(line[0]=="PING"):
s.send("PONG %s\r\n" % line[1])
Toutefois, cela fonctionne très bien, disons que je voulais exécuter une commande envoyer un message toutes les 60 secondes, comment dois-je faire? Je suppose que cela devrait en quelque sorte être fait de manière asynchrone, hors de la boucle infinie?
pourquoi de la boucle infinie? cron pourrait fonctionner je pense. – llazzaro
Sûrement cron n'est pas nécessaire pour quelque chose d'aussi simple que cela ... –
Si vous aviez utilisé Twisted pour votre bot IRC (comme vous devriez l'avoir presque certainement), vous utiliseriez simplement 'twisted.internet.task.LoopingCall' . – geoffspear