strategy_engine.remove_strategy("xxxxx")
调用remove_strategy以后,只有cta_strategy_setting.json里的相应的数据被清理了,但是保存变量的cta_strategy_data.json里的数据没被清理。
这会导致下次如果新建一样名字的策略,会加载之前的数据。这是故意这么设计的吗?为什么呢
从语义来说,既然是删除了策略,就应该把保存的变量也清理干净,就像删除了文件,总不能创建新的同名文件还会残留之前老文件的内容吧?
strategy_engine.remove_strategy("xxxxx")
调用remove_strategy以后,只有cta_strategy_setting.json里的相应的数据被清理了,但是保存变量的cta_strategy_data.json里的数据没被清理。
这会导致下次如果新建一样名字的策略,会加载之前的数据。这是故意这么设计的吗?为什么呢
从语义来说,既然是删除了策略,就应该把保存的变量也清理干净,就像删除了文件,总不能创建新的同名文件还会残留之前老文件的内容吧?
我看了一下CtaEngine类的源码,删除策略以后,因为strategy_data里的对应key没有被删除,CtaEngine类里面压根就没有删除strategy_data里key的相关逻辑,也就是说,strategy_data里会一直保存已经删掉的策略的变量数据。
这应该算是纰漏吧?
这个设计早期是为了避免用户误删策略后找不回来缓存数据,现在看可能加个点击【删除】按钮后的确认对话框更加合适?请在Github开个issue吧
MTF wrote:
这个设计早期是为了避免用户误删策略后找不回来缓存数据,现在看可能加个点击【删除】按钮后的确认对话框更加合适?请在Github开个issue吧
好的