def destroy(self): Logger.getlogger().info( "Thread: %s, call destroy(), then call dismiss(), join()!", threading.currentThread().getName()) # order is important: first, request all threads to stop...: for i in self.workers: self.workers[i].dismiss() # ...then, wait for each of them to terminate: for i in self.workers: self.workers[i].join() # clean up the workers from now-unused thread objects del self.workers
def run(self): while True: # Processing tasks in the in_queue until command is stop. command, callback, args, kwds = self.in_queue.get() if command == 'stop': Logger.getlogger().info( "Thread: %s, exit via command='stop' flag!", threading.currentThread().getName()) break try: if command != 'process': raise ValueError, 'Unknown command %r' % command except: self.report_error() else: try: callback(*args, **kwds) except Exception as e: print e
def __init__(self, *args, **kwargs): super(Login2Ctrip, self).__init__() self.logger = Logger.getlogger() self.url_userValidateNoRisk = 'https://passport.ctrip.com/gateway/api/soa2/12559/userValidateNoRisk' self.url_getMemberTaskByUID = 'https://passport.ctrip.com/gateway/api/soa2/11464/getMemberTaskByUID' self.url_userLogin = '******' self.url_ssoCrossSetCookie = 'https://accounts.ctrip.com/ssoproxy/ssoCrossSetCookie' self.login_result = {} self.rmsToken = "fp=yt8oak-1bn7wi6-1g3pebz&vid=mytime.2rsmg9&pageId=10320670296&r=f3106a5833fb490b96920fc0c610ecb3&ip=myip&kpData=0_0_0&kpControl=0_0_0-0_0_0&kpEmp=0_0_0_0_0_0_0_0_0_0-0_0_0_0_0_0_0_0_0_0-0_0_0_0_0_0_0_0_0_0&screen=1280x800&tz= 8&blang=en-US&oslang=en-US&ua=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36&d=passport.ctrip.com&v=22" self.rmsTokenSearch = '' self.session = requests.Session() Proxy.get_proxy(self.session, Login2Ctrip.proxy, 10) self.logger.info('Get proxy: %s', self.session.proxies) self.ip = str(self.session.proxies['http'].split('@')[1].split(':')[0]) self.port = str( self.session.proxies['http'].split('@')[1].split(':')[1])
def __init__(self, session, js_url, login2ctrip): super(CtripClickBooking, self).__init__() self.logger = Logger.getlogger() self.tasklist = 'PromoteVerify' self.proxy = { 'url': 'http://proxy.my.com/proxy', 'params': { "method": "c_hotel", "group": "cadsl", "mode": 1, "url": 1, "level": "HTTPS", "expire": -1 } } self.js_url = js_url self.session = session self.login2ctrip = login2ctrip self.url_inputneworder = 'http://hotels.ctrip.com/internationalbook/inputneworder.aspx?ctm_ref=hi_0_0_0_0_lst_sr_1_df_ls_1_n_hi_bk_1_0'
app_startup_path = os.path.dirname(os.path.realpath(__file__)) # params MAIN_PROCESS = sys.argv[0][sys.argv[0].rfind(r'/') + 1:] settings = {'parent_process': MAIN_PROCESS} params = sys.argv[0:] for p in params[1:]: name = p.split('=')[0].strip(' ') if name == 'num_jspool': set_jspool(int(p.split('=')[1].strip(' '))) elif name == 'num_proxy_ip': set_proxy_ip(int(p.split('=')[1].strip(' '))) elif name == 'log_path': LOG_PATH = p.split('=')[1].strip(' ') logger = Logger.getlogger(level=logging.DEBUG, name=LOG_NAME, path=LOG_PATH) logger.info('<<<========================= PhantomJS Service This log starting at %s =========================>>>', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) logger.info('Thread: %s, num_threadpool=%s', thread_name, NUM_THREADPOOL) logger.info('Thread: %s, num_phantomjspool=%s', thread_name, get_jspool()) # logger.info('Thread: %s, num_proxy_ip=%s', thread_name, get_proxy_ip()) # start threading to update network PROXY # thread_proxy_daemon = FixProxy() # thread_proxy_daemon.name = 'thread_proxy_daemon' # thread_proxy_daemon.setDaemon(True) # thread_proxy_daemon.start() # logger.info('Thread: %s, thread_proxy_daemon start... please waiting for few minutes...', thread_name) # create phantomjs pool JS_PID = PhantomJSPool.init(num=get_jspool())
for p in params[1:]: name = p.split('=')[0].strip(' ') if name == 'log_path': settings['log_path'] = p.split('=')[1].strip(' ') elif name == 'js_url': settings['js_url'] = p.split('=')[1].strip(' ') else: print 'Please give some args like:environment=dev log_path=/source/python/... for launching application! Well be exit 0!' sys.exit(0) except Exception as e: print 'Application init settings error!!! Well be exit -1!\n%s' % traceback.format_exc( ) sys.exit(-1) logger = Logger.getlogger(level=logging.DEBUG, name='promoteverify', path=settings['log_path']) logger.info( '<<<========================= Promote Verify This log starting at %s =========================>>>', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) logger.info("Application launched environment is: '%s'!", environment) # session session = None # Redis Key: task_key = 'PromoteVerify' task_status_key = 'PromoteVerify_Status' while 1: try:
last_hour = '' statisitc_path = '' statisitc_fname = '' log_path = '' for p in params[1:]: name = p.split('=')[0].strip(' ') if name == 'db_use': settings['db_use'] = p.split('=')[1].strip(' ') elif name == 'last_hour': last_hour = p.split('=')[1].replace('_', ' ') elif name == 'statisitc_path': statisitc_path = p.split('=')[1].strip(' ') elif name == 'statisitc_fname': statisitc_fname = p.split('=')[1].strip(' ') elif name == 'log_path': log_path = p.split('=')[1].strip(' ') logger = Logger.getlogger(level=logging.DEBUG, name='promoteverify_statistic', path=log_path) logger.info( '<<<========================= Promoteverify click statistic This log starting at %s =========================>>>', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) logger.info('last_hour = %s', last_hour) logger.info('statisitc_path = %s', statisitc_path) logger.info('statisitc_path = %s', statisitc_path) statistic(last_hour, statisitc_path, statisitc_fname)
def dismiss(self): command = 'stop' Logger.getlogger().info( "Thread: %s, call dismiss(), set command: 'stop'!", threading.currentThread().getName()) self.in_queue.set((command, None, None, None))