2011-10-02 4 views
2

Mon code est simple. En utilisant BaseHTTPServer et ThreadInMix je veux exécuter un script python (Script1.py) pour chaque requête faite simultanément.Le thread de BaseHTTPServer ne fonctionne pas

Mon Code-

from subprocess import PIPE, Popen 
from SocketServer import ThreadingMixIn 
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler 
import time 

def simple_script(self): 
    print 'simple_script' 
    s = Popen('C:/Python27/python C:/Script1.py 5', shell=True, 
      stdout=PIPE, stderr=PIPE) 
    out, err = s.communicate() 
    print out, err 
    self.wfile.write(out) 

class Handler(BaseHTTPRequestHandler): 
    def do_GET(self): 
     self.send_response(200) 
     self.end_headers() 
     self.wfile.write('{0}\n'.format(time.asctime())) 
     simple_script(self) 
     return 

class ThreadedHTTPServer(ThreadingMixIn, HTTPServer): 
    pass 

if __name__ == '__main__': 
    server = ThreadedHTTPServer(('', 8080), Handler) 
    print 'Starting server, use <Ctrl-C> to stop' 
    server.serve_forever() 

""" 
# C:/Script1.py 
import time, sys 

s = time.time() 

while True: 
    if time.time() - s > int(sys.argv[1]): 
     break 
    else: 
     time.sleep(1) 
     print time.asctime() 
""" 

Je viens de découvrir that- Avec URL: http://localhost:8080 Si j'ouvre plusieurs onglets/navigateurs pour IE, cela fonctionne bien Mais,

Si j'ouvre plusieurs onglets/pages dans Chrome ou Firefox, les pages attendent la page précédente? Cela n'implique pas le filetage dans Chrome ou Firefox? De l'aide? Merci

Répondre

1

fonctionne très bien pour moi:

Démarrage serveur, utilisez pour arrêter
localhost.localdomain - - [03/Oct/2011 16:25:55] "GET/HTTP/1.1" 200-
simple_script
localhost.localdomain - - [03/oct/2011 16:25:55] "GET/HTTP/1.1" 200-
simple_script
lun 3 octobre 2011 16:25:56
lun 3 octobre 16 : 25: 57 2011
lun. 3 oct. 16:25:58 2011
Mon Oct 3 16:25:59 2011
Mon Oct 3 16:26:00 2011
Mon Oct 3 16:26:01 2011

Mon Oct 3 16:25:56 2011
Lun 3 octobre 16:25:57 2011
Mon oct 3 16:25:58 2011
Mon oct 3 16:25:59 2011
Mon oct 3 16:26:00 2011
lun 3 octobre 2011 16:26:01

+0

Hi Ringding, Pouvez-vous s'il vous plaît me dire quel navigateur vous avez utilisé pour déclencher votre re quêtes? – abarik

+0

Hi Ringding, J'ai mis à jour le code en fonction de mes besoins !! Pouvez-vous s'il vous plaît essayer à nouveau et laissez-moi savoir si cela fonctionne? Merci beaucoup! – abarik

+0

Oui, cela fonctionne. Je n'utilise pas de navigateur du tout, je fais simplement des boucles. – Ringding

Questions connexes