Heim >Backend-Entwicklung >Python-Tutorial >Führen Sie denselben Operator als mehrere Aufgaben in Cloud Composer aus

Führen Sie denselben Operator als mehrere Aufgaben in Cloud Composer aus

PHPz
PHPznach vorne
2024-02-08 21:08:30627Durchsuche

在 Cloud Composer 中将同一运算符作为多个任务执行

Frageninhalt

Ich habe einen Python-Operator im Luftstrom, der mit Cloud Composer ausgeführt wurde:

with DAG(
    dag_id = config['dag_id'],
    schedule_interval = config['schedule_interval'],
    default_args = default_args
    ) as dag:
    
    generate_data_task = PythonOperator(
        task_id = 'generate_dummy_data',
        python_callable = generate_data,
        dag = dag
    )
Die Funktion

generate_data() schreibt eine zufällig generierte, eindeutig benannte CSV-Datei in einen Bucket, der einige Daten enthält. Die Ausführung funktioniert einwandfrei, aber ich möchte dieselbe Aufgabe mehrmals parallel ausführen. Wenn ich 10 parallele Ausführungen spezifiziere, erwarte ich, dass 10 Dateien in den Bucket geschrieben werden. Ich habe Parallelität und task_concurrency ausprobiert, aber das gleiche Ergebnis erhalten.

Kann dies durch den Luftstrom auf dem Cloud Composer erreicht werden?


Richtige Antwort


Verwenden Sie Dynamische Aufgabenzuordnung:

generate_data_task = PythonOperator.partial(
        task_id = 'generate_dummy_data',
        python_callable = generate_data,
        dag = dag
    ).expand(op_args=[[]] * 10)

Das obige ist der detaillierte Inhalt vonFühren Sie denselben Operator als mehrere Aufgaben in Cloud Composer aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen