-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathset_up_middleware_queues.py
More file actions
96 lines (70 loc) · 2.41 KB
/
Copy pathset_up_middleware_queues.py
File metadata and controls
96 lines (70 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import json
from config import AMOUNT_OF_QUERY1_WORKERS
from config import AMOUNT_OF_QUERY2_WORKERS
from config import AMOUNT_OF_QUERY3_WORKERS
from config import AMOUNT_OF_QUERY5_WORKERS
N_QUERIES = 5
def QUEUE_DEF(q_name: str):
return {
"name": q_name,
"vhost": "/",
"durable": True,
"auto_delete": False,
"arguments": {}
}
def EXCHANGE_DEF(e_name: str, e_type: str):
return {
"name": e_name,
"vhost": "/",
"type": e_type,
"durable": False,
"auto_delete": False,
"internal": False,
"arguments": {}
}
def BINDING_DEF(q_name, e_name, topic):
return {
"source": e_name,
"vhost": "/",
"destination": q_name,
"destination_type": "queue",
"routing_key": topic,
"arguments": {}
}
def set_up_Q1_queues():
definitions["queues"].append(QUEUE_DEF('Q1-Sync'))
for i in range(1, AMOUNT_OF_QUERY1_WORKERS+1):
definitions["queues"].append(QUEUE_DEF(f'Q1-Books-{i}'))
def set_up_Q2_queues():
definitions["queues"].append(QUEUE_DEF('Q2-Sync'))
for i in range(1, AMOUNT_OF_QUERY2_WORKERS+1):
definitions["queues"].append(QUEUE_DEF(f'Q2-Books-{i}'))
def set_up_Q3_queues():
definitions["queues"].append(QUEUE_DEF('Q3-Sync'))
for i in range(1, AMOUNT_OF_QUERY3_WORKERS+1):
definitions["queues"].append(QUEUE_DEF(f'Q3-Books-{i}'))
definitions["queues"].append(QUEUE_DEF(f'Q3-Reviews-{i}'))
def set_up_Q5_queues():
definitions["queues"].append(QUEUE_DEF('Q5-Sync'))
for i in range(1, AMOUNT_OF_QUERY5_WORKERS+1):
definitions["queues"].append(QUEUE_DEF(f'Q5-Books-{i}'))
definitions["queues"].append(QUEUE_DEF(f'Q5-Reviews-{i}'))
def set_up_RH_queues():
definitions["queues"].append(QUEUE_DEF('RH-Results'))
for i in range(1, N_QUERIES + 1):
definitions["bindings"].append(BINDING_DEF('RH-Results', 'results', f'Q{i}'))
def set_up_exchanges():
definitions["exchanges"].append(EXCHANGE_DEF('results', 'direct'))
definitions = {}
if __name__ == '__main__':
definitions["exchanges"] = []
definitions["queues"] = []
definitions["bindings"] = []
set_up_exchanges()
set_up_Q1_queues()
set_up_Q2_queues()
set_up_Q3_queues()
set_up_Q5_queues()
set_up_RH_queues()
with open("rabbitmq/definitions.json", "w") as def_file:
json.dump(definitions, fp=def_file, indent=4)