我是在气流2.1.4和我试图修改一个自定义传感器作为一个Smart Sensor。
除其他外,要允许自定义传感器作为智能传感器工作,您需要给它一个poke_context_fields类变量。这不是很好的文档,但我认为这只是一个__init__参数的列表,当智能传感器DAG/Shard调用它时,您也希望将这些参数传递给self.poke() (尽管我可能错了)。
所以我想:
poke_context_fields = ['myarg1', 'myarg2']我已经对此进行了测试,但似乎存在一个问题:当智能传感器DAG调用self.poke()时,它会按预期的方式转发这些参数,但是它不会给我方法所期望的常规context变量,而不是。不幸的是,如果没有对该变量的访问,我的代码将无法工作,因为它需要某些属性,如context['ds']、context['task_instance']等,这些属性只有在执行时才可用,而不是在Python解析类变量时才可用。
我读过以下文章(https://github.com/apache/airflow/issues/11893),但我没有百分之百地遵守。有什么解决办法吗?还是我应该得出结论:我不能使用智能传感器,而应该等待使用2.2.0中发布的可选操作符
https://stackoverflow.com/questions/70454664
复制相似问题