Multi-threaded
This commit is contained in:
parent
41015bdbcd
commit
8a3fc9ef6c
@ -8,18 +8,14 @@ HOST, PORT = "0.0.0.0", 514
|
||||
OracleUser = ''
|
||||
OraclePasswd = ''
|
||||
OracleServerSid = "localhost/orclpdb1"
|
||||
|
||||
#
|
||||
# NO USER SERVICEABLE PARTS BELOW HERE...
|
||||
#
|
||||
import sys
|
||||
import cx_Oracle
|
||||
import config
|
||||
import SocketServer
|
||||
import socketserver
|
||||
import json
|
||||
import threading
|
||||
|
||||
connection = cx_Oracle.connect(OracleUser, OraclePasswd, OracleServerSid)
|
||||
|
||||
connection = cx_Oracle.connect(OracleUser, OraclePasswd, OracleServerSid, threaded = True)
|
||||
cursor = connection.cursor()
|
||||
|
||||
def insert_logging(IP,PRIO,STAMP,HOST,APP,PID,MESS):
|
||||
@ -34,9 +30,8 @@ def insert_logging(IP,PRIO,STAMP,HOST,APP,PID,MESS):
|
||||
:param MESS:
|
||||
:return:
|
||||
"""
|
||||
sql = ('insert into SYSLOG(REMOTEIP,APPNAME,ZEIT,HOSTNAME,PID,PRIORITY,MESSAGE) '
|
||||
'values(:IP,:APP,:STAMP,:HOST,:PID,:PRIO,:MESS)')
|
||||
|
||||
# construct an insert statement that add a new row to the billing_headers table
|
||||
sql = ('insert into SYSLOG(REMOTEIP,APPNAME,ZEIT,HOSTNAME,PID,PRIORITY,MESSAGE) values (:IP,:APP,:STAMP,:HOST,:PID,:PRIO,:MESS)')
|
||||
try:
|
||||
cursor.execute(sql, [IP, APP, STAMP, HOST, PRIO, PID, MESS])
|
||||
connection.commit()
|
||||
@ -45,20 +40,21 @@ def insert_logging(IP,PRIO,STAMP,HOST,APP,PID,MESS):
|
||||
print(error)
|
||||
|
||||
|
||||
class SyslogUDPHandler(SocketServer.BaseRequestHandler):
|
||||
|
||||
class SyslogUDPHandler(socketserver.BaseRequestHandler):
|
||||
def handle(self):
|
||||
data = bytes.decode(self.request[0].strip())
|
||||
socket = self.request[1]
|
||||
print( "%s : " % self.client_address[0], str(data))
|
||||
fields = json.loads(str(data))
|
||||
insert_logging("%s" % self.client_address[0],fields["PRIO"].strip(),fields["TIME"],fields["HOST"],fields["APP"],fields["PID"].strip(),fields["MSG"])
|
||||
print("Recieved one request from {}".format(self.client_address[0]))
|
||||
print("Thread Name:{}".format(threading.current_thread().name))
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
server = SocketServer.UDPServer((HOST,PORT), SyslogUDPHandler)
|
||||
server.serve_forever(poll_interval=0.5)
|
||||
server = socketserver.ThreadingUDPServer((HOST,PORT), SyslogUDPHandler)
|
||||
server.serve_forever()
|
||||
except (IOError, SystemExit):
|
||||
raise
|
||||
except KeyboardInterrupt:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user