|
1 | 1 | { |
2 | 2 | "cells": [ |
3 | 3 | { |
4 | | - "metadata": {}, |
5 | 4 | "cell_type": "markdown", |
6 | | - "source": "# The Event Backlog", |
7 | | - "id": "f623967c8652cdf4" |
| 5 | + "id": "f623967c8652cdf4", |
| 6 | + "metadata": {}, |
| 7 | + "source": [ |
| 8 | + "# The Event Backlog" |
| 9 | + ] |
8 | 10 | }, |
9 | 11 | { |
10 | | - "metadata": {}, |
11 | 12 | "cell_type": "markdown", |
12 | | - "source": "Offers a container for managing events via insertion, retrieval, and deletion.", |
13 | | - "id": "1f16fbe04726f9ff" |
| 13 | + "id": "1f16fbe04726f9ff", |
| 14 | + "metadata": {}, |
| 15 | + "source": [ |
| 16 | + "Offers a container for managing events via insertion, retrieval, and deletion." |
| 17 | + ] |
14 | 18 | }, |
15 | 19 | { |
16 | | - "metadata": {}, |
17 | 20 | "cell_type": "markdown", |
| 21 | + "id": "df7e0e801a342646", |
| 22 | + "metadata": {}, |
18 | 23 | "source": [ |
19 | 24 | "--------------------------------------\n", |
20 | 25 | "Following code fragment demonstrates:\n", |
21 | 26 | "- Create Backlog\n", |
22 | 27 | "- Add Events to Backlog" |
23 | | - ], |
24 | | - "id": "df7e0e801a342646" |
| 28 | + ] |
25 | 29 | }, |
26 | 30 | { |
| 31 | + "cell_type": "code", |
| 32 | + "execution_count": 1, |
| 33 | + "id": "9389501c425f1789", |
27 | 34 | "metadata": { |
28 | 35 | "ExecuteTime": { |
29 | 36 | "end_time": "2025-07-18T11:17:12.781922Z", |
30 | 37 | "start_time": "2025-07-18T11:17:12.771765Z" |
31 | 38 | } |
32 | 39 | }, |
33 | | - "cell_type": "code", |
| 40 | + "outputs": [ |
| 41 | + { |
| 42 | + "name": "stdout", |
| 43 | + "output_type": "stream", |
| 44 | + "text": [ |
| 45 | + "\n", |
| 46 | + "Len: 0\n", |
| 47 | + "\n", |
| 48 | + "📦 Events in Backlog:\n", |
| 49 | + "> event.data={'id': 0, 'message': 'Test Event 0'}, state: receiving\n", |
| 50 | + "> event.data={'id': 1, 'message': 'Test Event 1'}, state: processing\n", |
| 51 | + "> event.data={'id': 2, 'message': 'Test Event 2'}, state: acked\n", |
| 52 | + "\n", |
| 53 | + "Len: 3\n" |
| 54 | + ] |
| 55 | + } |
| 56 | + ], |
34 | 57 | "source": [ |
35 | 58 | "from logprep.ng.event.set_event_backlog import SetEventBacklog\n", |
36 | 59 | "from logprep.ng.event.event_state import EventStateType\n", |
|
63 | 86 | " print(f\"> {event.data=}, state: {event.state}\")\n", |
64 | 87 | "\n", |
65 | 88 | "print(f\"\\nLen: {len(backlog.backlog)}\")" |
66 | | - ], |
67 | | - "id": "9389501c425f1789", |
68 | | - "outputs": [ |
69 | | - { |
70 | | - "name": "stdout", |
71 | | - "output_type": "stream", |
72 | | - "text": [ |
73 | | - "\n", |
74 | | - "Len: 0\n", |
75 | | - "\n", |
76 | | - "📦 Events in Backlog:\n", |
77 | | - "> event.data={'id': 0, 'message': 'Test Event 0'}, state: receiving\n", |
78 | | - "> event.data={'id': 1, 'message': 'Test Event 1'}, state: processing\n", |
79 | | - "> event.data={'id': 2, 'message': 'Test Event 2'}, state: acked\n", |
80 | | - "\n", |
81 | | - "Len: 3\n" |
82 | | - ] |
83 | | - } |
84 | | - ], |
85 | | - "execution_count": 1 |
| 89 | + ] |
86 | 90 | }, |
87 | 91 | { |
88 | | - "metadata": {}, |
89 | 92 | "cell_type": "markdown", |
| 93 | + "id": "c578efe4a6b51f16", |
| 94 | + "metadata": {}, |
90 | 95 | "source": [ |
91 | 96 | "--------------------------------------\n", |
92 | 97 | "Following code fragment demonstrates:\n", |
93 | 98 | "- Getting Event from Backlog" |
94 | | - ], |
95 | | - "id": "c578efe4a6b51f16" |
| 99 | + ] |
96 | 100 | }, |
97 | 101 | { |
| 102 | + "cell_type": "code", |
| 103 | + "execution_count": 2, |
| 104 | + "id": "2535f8366062db32", |
98 | 105 | "metadata": { |
99 | 106 | "ExecuteTime": { |
100 | 107 | "end_time": "2025-07-18T11:19:21.166388Z", |
101 | 108 | "start_time": "2025-07-18T11:19:21.162878Z" |
102 | 109 | } |
103 | 110 | }, |
104 | | - "cell_type": "code", |
105 | | - "source": [ |
106 | | - "processing_events = backlog.get(EventStateType.PROCESSING)\n", |
107 | | - "\n", |
108 | | - "print(f\"Len: {len(backlog.backlog)}\")\n", |
109 | | - "\n", |
110 | | - "print(\"\\n📥 Events in PROCESSING state:\")\n", |
111 | | - "\n", |
112 | | - "for event in processing_events:\n", |
113 | | - " print(f\"> {event.data=}, state: {event.state}\")\n", |
114 | | - "\n", |
115 | | - "print(f\"\\nLen: {len(backlog.backlog)}\")\n" |
116 | | - ], |
117 | | - "id": "2535f8366062db32", |
118 | 111 | "outputs": [ |
119 | 112 | { |
120 | 113 | "name": "stdout", |
|
129 | 122 | ] |
130 | 123 | } |
131 | 124 | ], |
132 | | - "execution_count": 2 |
| 125 | + "source": [ |
| 126 | + "processing_events = backlog.get(EventStateType.PROCESSING)\n", |
| 127 | + "\n", |
| 128 | + "print(f\"Len: {len(backlog.backlog)}\")\n", |
| 129 | + "\n", |
| 130 | + "print(\"\\n📥 Events in PROCESSING state:\")\n", |
| 131 | + "\n", |
| 132 | + "for event in processing_events:\n", |
| 133 | + " print(f\"> {event.data=}, state: {event.state}\")\n", |
| 134 | + "\n", |
| 135 | + "print(f\"\\nLen: {len(backlog.backlog)}\")\n" |
| 136 | + ] |
133 | 137 | }, |
134 | 138 | { |
135 | | - "metadata": {}, |
136 | 139 | "cell_type": "markdown", |
| 140 | + "id": "5a492e823c0f21e8", |
| 141 | + "metadata": {}, |
137 | 142 | "source": [ |
138 | 143 | "--------------------------------------\n", |
139 | 144 | "Following code fragment demonstrates:\n", |
140 | 145 | "- Removing Events from Backlog" |
141 | | - ], |
142 | | - "id": "5a492e823c0f21e8" |
| 146 | + ] |
143 | 147 | }, |
144 | 148 | { |
| 149 | + "cell_type": "code", |
| 150 | + "execution_count": 3, |
| 151 | + "id": "16ac2474df41292a", |
145 | 152 | "metadata": { |
146 | 153 | "ExecuteTime": { |
147 | 154 | "end_time": "2025-07-18T11:20:08.601957Z", |
148 | 155 | "start_time": "2025-07-18T11:20:08.598028Z" |
149 | 156 | } |
150 | 157 | }, |
151 | | - "cell_type": "code", |
152 | | - "source": [ |
153 | | - "print(f\"Len: {len(backlog.backlog)}\")\n", |
154 | | - "\n", |
155 | | - "acked_events = backlog.unregister(EventStateType.ACKED)\n", |
156 | | - "print(\"\\n🧹 Unregistered events with state ACKED:\")\n", |
157 | | - "\n", |
158 | | - "for event in acked_events:\n", |
159 | | - " print(f\"> {event.data=}, state: {event.state}\")\n", |
160 | | - "\n", |
161 | | - "\n", |
162 | | - "print(\"\\n📦 Remaining events in backlog:\")\n", |
163 | | - "\n", |
164 | | - "for state in EventStateType:\n", |
165 | | - " still_in_backlog = backlog.get(state)\n", |
166 | | - " for event in still_in_backlog:\n", |
167 | | - " print(f\"> {event.data=}, state: {event.state}\")\n", |
168 | | - "\n", |
169 | | - "print(f\"\\nLen: {len(backlog.backlog)}\")\n" |
170 | | - ], |
171 | | - "id": "16ac2474df41292a", |
172 | 158 | "outputs": [ |
173 | 159 | { |
174 | 160 | "name": "stdout", |
|
187 | 173 | ] |
188 | 174 | } |
189 | 175 | ], |
190 | | - "execution_count": 3 |
| 176 | + "source": [ |
| 177 | + "print(f\"Len: {len(backlog.backlog)}\")\n", |
| 178 | + "\n", |
| 179 | + "acked_events = backlog.unregister(EventStateType.ACKED)\n", |
| 180 | + "print(\"\\n🧹 Unregistered events with state ACKED:\")\n", |
| 181 | + "\n", |
| 182 | + "for event in acked_events:\n", |
| 183 | + " print(f\"> {event.data=}, state: {event.state}\")\n", |
| 184 | + "\n", |
| 185 | + "\n", |
| 186 | + "print(\"\\n📦 Remaining events in backlog:\")\n", |
| 187 | + "\n", |
| 188 | + "for state in EventStateType:\n", |
| 189 | + " still_in_backlog = backlog.get(state)\n", |
| 190 | + " for event in still_in_backlog:\n", |
| 191 | + " print(f\"> {event.data=}, state: {event.state}\")\n", |
| 192 | + "\n", |
| 193 | + "print(f\"\\nLen: {len(backlog.backlog)}\")\n" |
| 194 | + ] |
191 | 195 | }, |
192 | 196 | { |
193 | | - "metadata": {}, |
194 | 197 | "cell_type": "markdown", |
| 198 | + "id": "405d697678bd50e9", |
| 199 | + "metadata": {}, |
195 | 200 | "source": [ |
196 | 201 | "--------------------------------------\n", |
197 | 202 | "Following code fragment demonstrates:\n", |
198 | 203 | "- FAILING Removing Events from Backlog" |
199 | | - ], |
200 | | - "id": "405d697678bd50e9" |
| 204 | + ] |
201 | 205 | }, |
202 | 206 | { |
| 207 | + "cell_type": "code", |
| 208 | + "execution_count": 4, |
| 209 | + "id": "802e191d811ad8be", |
203 | 210 | "metadata": { |
204 | 211 | "ExecuteTime": { |
205 | 212 | "end_time": "2025-07-18T11:22:10.567396Z", |
206 | 213 | "start_time": "2025-07-18T11:22:10.562906Z" |
207 | 214 | } |
208 | 215 | }, |
209 | | - "cell_type": "code", |
| 216 | + "outputs": [ |
| 217 | + { |
| 218 | + "name": "stdout", |
| 219 | + "output_type": "stream", |
| 220 | + "text": [ |
| 221 | + "> Failed: unregister(receiving)\n", |
| 222 | + "> Failed: unregister(received)\n", |
| 223 | + "> Failed: unregister(processing)\n", |
| 224 | + "> Failed: unregister(processed)\n", |
| 225 | + "> Failed: unregister(stored_in_output)\n", |
| 226 | + "> Failed: unregister(stored_in_error)\n", |
| 227 | + "> Failed: unregister(delivered)\n", |
| 228 | + "Expected Failing: 7\n", |
| 229 | + "Failed: 7\n", |
| 230 | + "\n", |
| 231 | + "Should work without exceptions\n", |
| 232 | + "> Ok: unregister(failed)\n", |
| 233 | + "> Ok: unregister(acked)\n" |
| 234 | + ] |
| 235 | + } |
| 236 | + ], |
210 | 237 | "source": [ |
211 | 238 | "fail_unregister_states = [\n", |
212 | 239 | " EventStateType.RECEIVING,\n", |
|
238 | 265 | "for state in success_unregister_states:\n", |
239 | 266 | " backlog.unregister(state)\n", |
240 | 267 | " print(f\"> Ok: unregister({state})\")\n" |
241 | | - ], |
242 | | - "id": "802e191d811ad8be", |
243 | | - "outputs": [ |
244 | | - { |
245 | | - "name": "stdout", |
246 | | - "output_type": "stream", |
247 | | - "text": [ |
248 | | - "> Failed: unregister(receiving)\n", |
249 | | - "> Failed: unregister(received)\n", |
250 | | - "> Failed: unregister(processing)\n", |
251 | | - "> Failed: unregister(processed)\n", |
252 | | - "> Failed: unregister(stored_in_output)\n", |
253 | | - "> Failed: unregister(stored_in_error)\n", |
254 | | - "> Failed: unregister(delivered)\n", |
255 | | - "Expected Failing: 7\n", |
256 | | - "Failed: 7\n", |
257 | | - "\n", |
258 | | - "Should work without exceptions\n", |
259 | | - "> Ok: unregister(failed)\n", |
260 | | - "> Ok: unregister(acked)\n" |
261 | | - ] |
262 | | - } |
263 | | - ], |
264 | | - "execution_count": 4 |
| 268 | + ] |
265 | 269 | }, |
266 | 270 | { |
267 | | - "metadata": {}, |
268 | 271 | "cell_type": "code", |
269 | | - "outputs": [], |
270 | 272 | "execution_count": null, |
271 | | - "source": "", |
272 | | - "id": "dc699f2391e39ba7" |
| 273 | + "id": "dc699f2391e39ba7", |
| 274 | + "metadata": {}, |
| 275 | + "outputs": [], |
| 276 | + "source": [] |
273 | 277 | } |
274 | 278 | ], |
275 | 279 | "metadata": { |
276 | 280 | "kernelspec": { |
277 | | - "display_name": "Python 3", |
| 281 | + "display_name": ".venv", |
278 | 282 | "language": "python", |
279 | 283 | "name": "python3" |
280 | 284 | }, |
|
288 | 292 | "name": "python", |
289 | 293 | "nbconvert_exporter": "python", |
290 | 294 | "pygments_lexer": "ipython2", |
291 | | - "version": "2.7.6" |
| 295 | + "version": "3.11.11" |
292 | 296 | } |
293 | 297 | }, |
294 | 298 | "nbformat": 4, |
|
0 commit comments