Github : https://github.com/aceld/kis-flow
Document : https://github.com/aceld/kis-flow/wiki
Part1-OverView
Partie2.1-Construction du projet / Modules de base
Partie2.2-Construction du projet / Modules de base
Partie 3-Flux de données
Planification des fonctions Part4
Partie 5-Connecteur
Partie 6-Importation et exportation de configuration
Part7-Action KisFlow
Part8-Cache/Params Mise en cache des données et paramètres de données
Partie 9-Copies multiples du flux
Part10-Statistiques des métriques Prometheus
Partie 11 - Enregistrement adaptatif des types de paramètres FaaS basé sur la réflexion
Cas 1 – Démarrage rapide
Opération parallèle Case2-Flow
Cas3-Application de KisFlow dans Multi-Cas (III) - KisFlow-Golang Stream Real - Application de KisFlow dans Multi-Goroutines
Case4-KisFlow dans les applications de file d'attente de messages (MQ)
$go get github.com/aceld/kis-flow
Documentation du développeur KisFlow
https://github.com/aceld/kis-flow-usage/tree/main/6-flow_in_goroutines
Si vous avez besoin que le même Flow s'exécute simultanément dans plusieurs Cas (III) - KisFlow-Golang Stream Real - Application de KisFlow dans Multi-Goroutines, vous pouvez utiliser la fonction flow.Fork() pour cloner une instance Flow avec une mémoire isolée mais la même configuration. Chaque instance Flow peut ensuite être exécutée dans différentes Cas (III) - KisFlow-Golang Stream Real - Application de KisFlow dans Multi-Goroutines pour calculer leurs flux de données respectifs.
package main import ( "context" "fmt" "github.com/aceld/kis-flow/file" "github.com/aceld/kis-flow/kis" "sync" ) func main() { ctx := context.Background() // Get a WaitGroup var wg sync.WaitGroup // Load Configuration from file if err := file.ConfigImportYaml("conf/"); err != nil { panic(err) } // Get the flow flow1 := kis.Pool().GetFlow("CalStuAvgScore") if flow1 == nil { panic("flow1 is nil") } // Fork the flow flowClone1 := flow1.Fork(ctx) // Add to WaitGroup wg.Add(2) // Run Flow1 go func() { defer wg.Done() // Submit a string _ = flow1.CommitRow(`{"stu_id":101, "score_1":100, "score_2":90, "score_3":80}`) // Submit a string _ = flow1.CommitRow(`{"stu_id":1001, "score_1":100, "score_2":70, "score_3":60}`) // Run the flow if err := flow1.Run(ctx); err != nil { fmt.Println("err: ", err) } }() // Run FlowClone1 go func() { defer wg.Done() // Submit a string _ = flowClone1.CommitRow(`{"stu_id":201, "score_1":100, "score_2":90, "score_3":80}`) // Submit a string _ = flowClone1.CommitRow(`{"stu_id":2001, "score_1":100, "score_2":70, "score_3":60}`) if err := flowClone1.Run(ctx); err != nil { fmt.Println("err: ", err) } }() // Wait for Cas (III) - KisFlow-Golang Stream Real - Application de KisFlow dans Multi-Goroutines to finish wg.Wait() fmt.Println("All flows completed.") return } func init() { // Register functions kis.Pool().FaaS("VerifyStu", VerifyStu) kis.Pool().FaaS("AvgStuScore", AvgStuScore) kis.Pool().FaaS("PrintStuAvgScore", PrintStuAvgScore) }
Dans cet extrait de code, nous démarrons deux Cas (III) - KisFlow-Golang Stream Real - Application de KisFlow dans Multi-Goroutines pour exécuter Flow1 et son clone (FlowClone1) simultanément afin de calculer les scores moyens finaux des étudiants 101, 1001, 201 et 2001.
Auteur : Aceld
GitHub : https://github.com/aceld
Adresse du projet Open Source KisFlow : https://github.com/aceld/kis-flow
Document : https://github.com/aceld/kis-flow/wiki
Part1-OverView
Partie2.1-Construction du projet / Modules de base
Partie2.2-Construction du projet / Modules de base
Partie 3-Flux de données
Planification des fonctions Part4
Partie 5-Connecteur
Partie 6-Importation et exportation de configuration
Part7-Action KisFlow
Part8-Cache/Params Mise en cache des données et paramètres de données
Partie 9-Copies multiples du flux
Part10-Statistiques des métriques Prometheus
Partie 11 - Enregistrement adaptatif des types de paramètres FaaS basé sur la réflexion
Cas 1 – Démarrage rapide
Opération parallèle Case2-Flow
Cas3-Application de KisFlow dans Multi-Cas (III) - KisFlow-Golang Stream Real - Application de KisFlow dans Multi-Goroutines
Case4-KisFlow dans les applications de file d'attente de messages (MQ)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!