Skip to content

Commit

Permalink
added_multithreading
Browse files Browse the repository at this point in the history
  • Loading branch information
abhishekgupta368 committed Mar 5, 2020
1 parent f636907 commit 3c6c9fa
Showing 1 changed file with 33 additions and 21 deletions.
54 changes: 33 additions & 21 deletions Scrapper-Service/app.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
# -*- coding: utf-8 -*-
"""
Created on Thu Mar 5 15:59:20 2020
@author: Lenovo
"""

import logging
import json
import argparse
import importlib
import traceback
import os
from utility import str2bool , getLogger , printStart




from multiprocessing.pool import ThreadPool as Pool
import time
##
#
# Test whether the initialization is working or not
Expand Down Expand Up @@ -56,7 +61,22 @@ def createDatabase(configuration):
classname = db_configuration["plugin"]["class"]
module = importlib.import_module(path , ".")
Database = module.__getattribute__(classname)
return lambda logger: Database(logger , **db_configuration)
return lambda logger: Database(logger , **db_configuration)

def initiate_scrapper(attr):
path = attr["filename"]
class_name = attr["class"]
plugin_module = importlib.import_module(path , ".")
scrapper = plugin_module.__getattribute__(class_name)
try:
log_stream = log_streamOption("{}/{}.log".format(log_folder , class_name))
if istest:
scrapper( log_level = log_level, log_stream = log_stream , getDatabaseObject = createDatabase(configuration) )
else:
scrapper( log_level = log_level, log_stream = log_stream , getDatabaseObject = createDatabase(configuration) ).run()
except Exception as e:
logger.error("{} scrapper failed".format(class_name))
traceback.print_exception(type(e), e, e.__traceback__)

if __name__ == '__main__':

Expand All @@ -69,24 +89,16 @@ def createDatabase(configuration):
os.mkdir(log_folder)

logger = getLogger(__name__ , log_level , log_streamOption("{}/{}.log".format(log_folder , "main")) )

printStart(logger)
# start = time.process_time()
logger.info("Application started , Extracting all the plugins")

#----------------------------------------------------------
import_list = configuration["plugins"]
pool = Pool(10)
for attr in import_list:

path = attr["filename"]
class_name = attr["class"]
plugin_module = importlib.import_module(path , ".")
scrapper = plugin_module.__getattribute__(class_name)
try:
log_stream = log_streamOption("{}/{}.log".format(log_folder , class_name))
if istest:
scrapper( log_level = log_level, log_stream = log_stream , getDatabaseObject = createDatabase(configuration) )
else:
scrapper( log_level = log_level, log_stream = log_stream , getDatabaseObject = createDatabase(configuration) ).run()
except Exception as e:
logger.error("{} scrapper failed".format(class_name))
traceback.print_exception(type(e), e, e.__traceback__)
pool.apply_async(initiate_scrapper,(attr,))
pool.close()
pool.join()
#----------------------------------------------------------
# print("time: ",time.process_time() - start)
logger.info("Scrapping done from all Scrapper plugins")

0 comments on commit 3c6c9fa

Please sign in to comment.