1- """Basic task label example"""
1+ """Basic task label example
2+
3+ Labels can be used for identifying or semantically grouping tasks. Using the $glob operator
4+ relevant task records can be queried from the Task Database.
5+
6+ Authors
7+ -------
8+ * ottointhesky
9+ """
210
311import ipyparallel as ipp
412
@@ -18,13 +26,17 @@ def wait(t):
1826 return time .time () - tic
1927
2028
29+ count = 5 # number of tasks per method
30+
2131# use load balanced view
2232bview = rc .load_balanced_view ()
2333ar_list_b1 = [
24- bview .set_flags (label = f"mylabel_map_{ i :02} " ).map_async (wait , [2 ]) for i in range (10 )
34+ bview .set_flags (label = f"bview_map_{ i :02} " ).map_async (wait , [2 ])
35+ for i in range (count )
2536]
2637ar_list_b2 = [
27- bview .set_flags (label = f"mylabel_map_{ i :02} " ).apply_async (wait , 2 ) for i in range (10 )
38+ bview .set_flags (label = f"bview_apply_{ i :02} " ).apply_async (wait , 2 )
39+ for i in range (count )
2840]
2941bview .wait (ar_list_b1 )
3042bview .wait (ar_list_b2 )
@@ -33,19 +45,36 @@ def wait(t):
3345# use direct view
3446dview = rc [:]
3547ar_list_d1 = [
36- dview .set_flags (label = f"mylabel_map_ { i + 10 :02} " ).apply_async (wait , 2 )
37- for i in range (10 )
48+ dview .set_flags (label = f"dview_map_ { i + 10 :02} " ).map_async (wait , [ 2 ] )
49+ for i in range (count )
3850]
3951ar_list_d2 = [
40- dview .set_flags (label = f"mylabel_map_ { i + 10 :02} " ).map_async (wait , [ 2 ] )
41- for i in range (10 )
52+ dview .set_flags (label = f"dview_apply_ { i + 10 :02} " ).apply_async (wait , 2 )
53+ for i in range (count )
4254]
4355dview .wait (ar_list_d1 )
4456dview .wait (ar_list_d2 )
4557
58+
59+ def print_records (titel , data ):
60+ print (f"{ titel } ({ len (data )} records)" )
61+ for d in data :
62+ print (
63+ f"\t msg_id={ d ['msg_id' ]} ; label={ d ['label' ]} ; engine_uuid={ d ['engine_uuid' ]} "
64+ )
65+
66+
67+ query_keys = ['msg_id' , 'label' , 'engine_uuid' ]
68+
4669# query database
47- data = rc .db_query ({'label' : {"$nin" : "" }}, keys = ['msg_id' , 'label' , 'engine_uuid' ])
48- for d in data :
49- print (f"msg_id={ d ['msg_id' ]} ; label={ d ['label' ]} ; engine_uuid={ d ['engine_uuid' ]} " )
70+ data = rc .db_query ({'label' : {"$nin" : "" }}, keys = query_keys )
71+ print_records ("all entries with labels" , data )
72+
73+ data = rc .db_query ({'label' : {"$glob" : "dview_*" }}, keys = query_keys )
74+ print_records ("all dview label entries" , data )
75+
76+ data = rc .db_query ({'label' : {"$glob" : "*_map_*" }}, keys = query_keys )
77+ print_records ("all map label entries" , data )
5078
79+ # stop cluster
5180cluster .stop_cluster_sync ()
0 commit comments