Google云功能不能用于在发布/订阅消息上触发作曲者DAG
我已经尝试过PubSubPullSensor
pull_messages = PubSubPullSensor(
task_id="pull_messages",
ack_messages=True,
project='xxxx',
subscription='xxxx',
)
但这不会触发,如预期的那样,DAG
在发布/订阅消息上触发DAG的任何帮助将不胜感激?
答案 0 :(得分:1)
PubSubPullSensor
是DAG的一部分。 dag需要运行才能执行传感器,这就是为什么它不起作用。
我认为最直接的方法是使用云功能,但是如果不可能,第二个选择是使用另一台服务器(它可能是GCP中的另一个计算选项:Cloud AppEngine,Cloud Run等)。 )以接收发布/订阅消息并触发dag。基本上,与发布/订阅+云功能相同,但没有功能。
如果您不想遵循这种方法,并且想在同一Composer环境中触发Dag,则可以在运行的dag上使用PubSubPullSensor
,并在需要时使用TriggerDagRunOperator
。
这个想法可以以多种形式使用;但是,棘手的事情是PubSubPullSensor
需要在运行的dag中执行。一个可能的解决方案是安排dag经常运行,例如every 5 minutes