def monitoring_one(self, firm_code, firm_name, start_price, stop_ratio, win_ratio, buy_date, num, flags): price_data = CrawlingFirmPriceData('day', 1) try: firms = price_data.crawling_type_a(firm_code,firm_name) except requests.exceptions.Timeout: time.sleep(60) firms = price_data.crawling_type_a(firm_code,firm_name) stop_price = int(self.stop_loss_price(start_price, stop_ratio)) win_price = int(self.win_price(start_price, win_ratio)) close = int(firms.loc[0, 'close']) stop_ratio = round(close / stop_price, 2) win_ratio = round(close / win_price, 2) count_day = buy_date print('{0} monitoring {1} win:{2}/{3}-{4}, stop:{5}/{6}-{7}, buy_date:{8}, {9}'.format( num, firm_code, close, win_price, win_ratio, close, stop_price, stop_ratio, count_day, firm_name)) print('-'*95) if stop_price >= close: Alert().stop_alert(firms) flags[num] = 1 return flags if win_price <= close: Alert().win_alert(firms) flags[num] = 1 return flags return flags
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) import config CFG = config.getConfig() alert_logfile = "/var/log/druid/admin_alerts.log" WARNING_DAYS = [0, 1, 3, 5, 7, 14, 30] log = logging.getLogger('retire_nodes') log.setLevel(logging.INFO) fh = logging.FileHandler(alert_logfile) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) log.addHandler(fh) alert = Alert(sys.argv[1:9]) log.debug("Events=%d Name='%s' Trigger='%s' URL='%s' Raw results='%s'" % (alert.numevents, alert.search_name, alert.trigger_reason, alert.saved_search_url, alert.raw_results)) retire = [x for x in alert.events if x['retire'] == 1] expire = [x for x in alert.events if x['retire'] == 0] # First, lets send warnings for the users about node expirations contacts = list( set([ x['CONTACT'].lower() for x in expire if int(x['days_to_expire']) in WARNING_DAYS ]))