使用 Airflow,从同一个循环中,成功的 API 响应继续执行下一个任务,但带有错误的响应具有显示为失败的单独任务

克里斯蒂卢娜

我想知道是否有一个很好的方法来做到这一点,我有下面的循环,它列出了所有抛出错误的 Facebook 页面:

permission_error =[]
for idx, series in df.iterrows():
    id = series['id']
    access_token = series['access_token']
    response = requests.get(url=f'https://graph.facebook.com/{id}/feed?fields=insights.metric(post_impressions_unique,post_impressions)&since=2021-06-01&until=2021-06-20&access_token={access_token}')
    json_response = response.json()
    if 'error' in json_response:
        permission_error(series['name'])

分解任务的最佳方法是什么,以便成功运行的页面继续执行下一个任务,但可能类似于一个单独的任务,该任务显示除“成功”之外的其他内容以及 json_response 中的所有“错误”消息。如果是这样,最好的方法是什么?

杰瑞克·波蒂克

如果页数很少,您可以将它们作为两个单独的字典返回,存储在 XCom 中的不同键下(通过 xcom.push() 并在随后的两个任务中从 xcom 中提取不同的键。

如果页面数在 1000 的数量级,那么最好将这些 URL 作为两个不同的对象写入外部存储(如 GCS/S3),并通过这两个 XCom 键设置这些对象的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章