Esempio n. 1
0
    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
Esempio n. 2
0
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
    ]))