| | |
| | | __sell_lock_dict = {} |
| | | __mysql_excute_thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=10) |
| | | |
| | | |
| | | |
| | | def __new__(cls, *args, **kwargs): |
| | | if not cls.__instance: |
| | | cls.__instance = super(SellRuleManager, cls).__new__(cls, *args, **kwargs) |
| | |
| | | rule.day, rule.excuted, rule.end_time)) |
| | | self.__sell_rules_dict_cache[_id] = rule |
| | | |
| | | def update_rule(self, rule: SellRule): |
| | | if not rule.id_: |
| | | raise Exception("缺失id") |
| | | # 获取原来的数据 |
| | | old_rule: SellRule = self.get_by_id(rule.id_) |
| | | rule.day = old_rule.day |
| | | mysql_data.Mysqldb().execute( |
| | | "update sell_rules set code = '%s',buy1_volume = '%s', buy1_price='%s',sell_volume = '%s',sell_price_type='%s',end_time = '%s' where _id='%s'" % ( |
| | | rule.code, rule.buy1_volume, rule.buy1_price, rule.sell_volume, rule.sell_price_type, rule.end_time, |
| | | rule.id_)) |
| | | rule.excuted = old_rule.excuted |
| | | rule.create_time = old_rule.create_time |
| | | |
| | | self.__sell_rules_dict_cache[rule.id_] = rule |
| | | |
| | | # 删除规则 |
| | | def del_rule(self, _id): |
| | | mysql_data.Mysqldb().execute(f"delete from sell_rules where _id='{_id}'") |
| | |
| | | def excute_sell(self, _id): |
| | | if _id in self.__sell_rules_dict_cache: |
| | | self.__sell_rules_dict_cache[_id].excuted = 1 |
| | | self.__mysql_excute_thread_pool.submit(mysql_data.Mysqldb().execute, f"update sell_rules r set r.excuted=1 where r._id='{_id}'") |
| | | self.__mysql_excute_thread_pool.submit(mysql_data.Mysqldb().execute, |
| | | f"update sell_rules r set r.excuted=1 where r._id='{_id}'") |
| | | |
| | | # 请求卖出锁 |
| | | def require_sell_lock(self, _id): |