小编MrS*_*Sir的帖子

将 OracleOperator 的输出发送到 Airflow 中的另一个任务

我需要在另一个任务中使用 oracleOperator 的输出以进一步执行。我遇到的麻烦是,当我将数据拉入另一个任务并打印它时,它给出的结果为 None。没有抛出错误,但没有传递数据。此外,任务 UI 中的xcom选项卡的键和值显示为空白。

我的代码如下:

from airflow import DAG
from airflow.operators.oracle_operator import OracleOperator
from airflow.operators.python_operator import PythonOperator
from airflow.utils.dates import days_ago

args = {
    'owner': 'xyz',
    'start_date': days_ago(2),
}

dag = DAG('example_xcom', schedule_interval="@once", default_args=args, tags=['example'])


def puller(**kwargs):
    ti = kwargs['ti']
    # get value_1
    pulled_value_1 = ti.xcom_pull(key=None, task_ids='push')
    print("VALUE IN PULLER ")
    print(pulled_value_1)

pull = PythonOperator(
    task_id='pullee',
    dag=dag,
    python_callable=puller,
    provide_context=True,
)
push = OracleOperator(
    task_id='data',
    sql='SELECT * FROM CUSTOMERS', 
    oracle_conn_id='1',
    provide_context=True,
    dag=dag,
)


push>>pull
Run Code Online (Sandbox Code Playgroud)

airflow apache-airflow-xcom

3
推荐指数
1
解决办法
970
查看次数

使用 nats-streaming 发送大于 1MB 的消息?

我正在尝试使用 nats 消息服务发送文件。文件的大小可能会有所不同。有没有办法在消息正文中发送超过 1MB 的数据,或者可能中断并加入消息正文?

go nats-streaming-server nats.io

1
推荐指数
1
解决办法
1万
查看次数