Administrator
2024-01-26 7936ffdd92d5b9508ab689b05fba53c8f4e3b24c
trade/sell/sell_rule_manager.py
@@ -47,8 +47,6 @@
    __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)
@@ -93,6 +91,21 @@
                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}'")
@@ -118,7 +131,8 @@
    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):