我对python很新,并且使用pythons SocketServer.ForkingTCPServer来创建需要连接到数据库(mysql)的网络脚本。我希望这个程序能够以每秒30到40次的速度受到攻击。是否可以跨进程共享相同的数据库连接?
import os import SocketServer import MySQLdb class EchoHandler(SocketServer.StreamRequestHandler): def handle(self): self.wfile.write("SET VARIABLE DBDIALSTRING dbstuff \n") self.wfile.flush() self.conn.close() if __name__ == '__main__': conn = MySQLdb.connect (host = "10.0.0.12", user = "dbuser", passwd = "secert", db = "dbname") SocketServer.ForkingTCPServer.allow_reuse_address = 1 server = SocketServer.ForkingTCPServer(('10.0.0.10', 4242), EchoHandler) print "Server listening on localhost:4242..." try: server.allow_reuse_address server.serve_forever() except KeyboardInterrupt: print "\nbailing..."
答案 0 :(得分:0)
是的,这是可能的。例如,http://mysql-python.sourceforge.net/MySQLdb.html是/可以是线程安全的。您可以在启动forks之前连接,也可以使用全局变量。它不漂亮但会起作用。
您可以将连接作为参数传递给构造函数。 如果你粘贴一些有问题的代码会更好。