vs-queue 0.1.1__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {vs_queue-0.1.1 → vs_queue-0.1.2}/PKG-INFO +7 -13
- {vs_queue-0.1.1 → vs_queue-0.1.2}/README.md +6 -12
- {vs_queue-0.1.1 → vs_queue-0.1.2}/pyproject.toml +1 -1
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/base/vs_base_consumer.py +2 -2
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/PKG-INFO +7 -13
- {vs_queue-0.1.1 → vs_queue-0.1.2}/setup.cfg +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/base/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/base/vs_base_queue.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/decorator/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/decorator/vs_queue_listener.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/factory/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/factory/vs_queue_factory.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/manager/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/manager/vs_queue_manager.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/provider/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/provider/vs_rabbitmq_queue.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/provider/vs_redis_queue.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/registry/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/registry/vs_queue_registry.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/retry/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/retry/vs_retry_policy.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/schema/__init__.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue/schema/vs_message.py +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/SOURCES.txt +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/dependency_links.txt +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/requires.txt +0 -0
- {vs_queue-0.1.1 → vs_queue-0.1.2}/vs_queue.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vs-queue
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Pluggable async message queue library for Viveka Sutra — Redis Streams, RabbitMQ, retry, dead letter, and annotation-based consumers
|
|
5
5
|
Project-URL: Homepage, https://vivekasutra.com/
|
|
6
6
|
Project-URL: Source, https://github.com/vivekasutra/viveka-mula
|
|
@@ -315,13 +315,13 @@ Abstract base class for all consumers. Extend this and implement `handle` to pro
|
|
|
315
315
|
| Method | Description |
|
|
316
316
|
|---|---|
|
|
317
317
|
| `handle(message)` | Called for every message received. Raise any exception to trigger retry. |
|
|
318
|
-
| `start()` | Called once when the consumer begins. Use for setup. |
|
|
319
|
-
| `stop()` | Called once on graceful shutdown. Use for cleanup. |
|
|
320
318
|
|
|
321
|
-
**Optional override
|
|
319
|
+
**Optional overrides** (concrete no-ops by default — override only if you need them):
|
|
322
320
|
|
|
323
321
|
| Method | Description |
|
|
324
322
|
|---|---|
|
|
323
|
+
| `start()` | Called once when the consumer begins. Use for setup. |
|
|
324
|
+
| `stop()` | Called once on graceful shutdown. Use for cleanup. |
|
|
325
325
|
| `on_error(message, error)` | Called when `handle` raises an exception, before retry logic runs. Use for logging or alerting. |
|
|
326
326
|
|
|
327
327
|
**Example with error hook:**
|
|
@@ -374,9 +374,6 @@ Decorator that registers a `VsBaseConsumer` subclass as a listener. `VsQueueMana
|
|
|
374
374
|
class SimpleConsumer(VsBaseConsumer):
|
|
375
375
|
async def handle(self, message: VsMessage) -> None:
|
|
376
376
|
print(message.payload)
|
|
377
|
-
|
|
378
|
-
async def start(self) -> None: pass
|
|
379
|
-
async def stop(self) -> None: pass
|
|
380
377
|
```
|
|
381
378
|
|
|
382
379
|
**Example — full configuration:**
|
|
@@ -543,9 +540,6 @@ class DlqConsumer(VsBaseConsumer):
|
|
|
543
540
|
f"Message permanently failed | id={message.id} retries={message.retry_count}",
|
|
544
541
|
payload=message.payload,
|
|
545
542
|
)
|
|
546
|
-
|
|
547
|
-
async def start(self) -> None: pass
|
|
548
|
-
async def stop(self) -> None: pass
|
|
549
543
|
```
|
|
550
544
|
|
|
551
545
|
**Example — replaying a DLQ message:**
|
|
@@ -938,9 +932,9 @@ Abstract base. Extend and implement `handle` to process messages.
|
|
|
938
932
|
| Method | Required | Description |
|
|
939
933
|
|---|---|---|
|
|
940
934
|
| `handle(message)` | Yes | Process a message. Raise to trigger retry. |
|
|
941
|
-
| `start()` |
|
|
942
|
-
| `stop()` |
|
|
943
|
-
| `on_error(message, error)` | No | Called on `handle` failure before retry |
|
|
935
|
+
| `start()` | No — no-op by default | Setup before consuming begins |
|
|
936
|
+
| `stop()` | No — no-op by default | Cleanup on shutdown — called on graceful cancel |
|
|
937
|
+
| `on_error(message, error)` | No — no-op by default | Called on `handle` failure before retry |
|
|
944
938
|
|
|
945
939
|
---
|
|
946
940
|
|
|
@@ -284,13 +284,13 @@ Abstract base class for all consumers. Extend this and implement `handle` to pro
|
|
|
284
284
|
| Method | Description |
|
|
285
285
|
|---|---|
|
|
286
286
|
| `handle(message)` | Called for every message received. Raise any exception to trigger retry. |
|
|
287
|
-
| `start()` | Called once when the consumer begins. Use for setup. |
|
|
288
|
-
| `stop()` | Called once on graceful shutdown. Use for cleanup. |
|
|
289
287
|
|
|
290
|
-
**Optional override
|
|
288
|
+
**Optional overrides** (concrete no-ops by default — override only if you need them):
|
|
291
289
|
|
|
292
290
|
| Method | Description |
|
|
293
291
|
|---|---|
|
|
292
|
+
| `start()` | Called once when the consumer begins. Use for setup. |
|
|
293
|
+
| `stop()` | Called once on graceful shutdown. Use for cleanup. |
|
|
294
294
|
| `on_error(message, error)` | Called when `handle` raises an exception, before retry logic runs. Use for logging or alerting. |
|
|
295
295
|
|
|
296
296
|
**Example with error hook:**
|
|
@@ -343,9 +343,6 @@ Decorator that registers a `VsBaseConsumer` subclass as a listener. `VsQueueMana
|
|
|
343
343
|
class SimpleConsumer(VsBaseConsumer):
|
|
344
344
|
async def handle(self, message: VsMessage) -> None:
|
|
345
345
|
print(message.payload)
|
|
346
|
-
|
|
347
|
-
async def start(self) -> None: pass
|
|
348
|
-
async def stop(self) -> None: pass
|
|
349
346
|
```
|
|
350
347
|
|
|
351
348
|
**Example — full configuration:**
|
|
@@ -512,9 +509,6 @@ class DlqConsumer(VsBaseConsumer):
|
|
|
512
509
|
f"Message permanently failed | id={message.id} retries={message.retry_count}",
|
|
513
510
|
payload=message.payload,
|
|
514
511
|
)
|
|
515
|
-
|
|
516
|
-
async def start(self) -> None: pass
|
|
517
|
-
async def stop(self) -> None: pass
|
|
518
512
|
```
|
|
519
513
|
|
|
520
514
|
**Example — replaying a DLQ message:**
|
|
@@ -907,9 +901,9 @@ Abstract base. Extend and implement `handle` to process messages.
|
|
|
907
901
|
| Method | Required | Description |
|
|
908
902
|
|---|---|---|
|
|
909
903
|
| `handle(message)` | Yes | Process a message. Raise to trigger retry. |
|
|
910
|
-
| `start()` |
|
|
911
|
-
| `stop()` |
|
|
912
|
-
| `on_error(message, error)` | No | Called on `handle` failure before retry |
|
|
904
|
+
| `start()` | No — no-op by default | Setup before consuming begins |
|
|
905
|
+
| `stop()` | No — no-op by default | Cleanup on shutdown — called on graceful cancel |
|
|
906
|
+
| `on_error(message, error)` | No — no-op by default | Called on `handle` failure before retry |
|
|
913
907
|
|
|
914
908
|
---
|
|
915
909
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "vs-queue"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.2"
|
|
8
8
|
description = "Pluggable async message queue library for Viveka Sutra — Redis Streams, RabbitMQ, retry, dead letter, and annotation-based consumers"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -13,12 +13,12 @@ class VsBaseConsumer(ABC):
|
|
|
13
13
|
async def handle(self, message: VsMessage) -> None:
|
|
14
14
|
pass
|
|
15
15
|
|
|
16
|
-
@abstractmethod
|
|
17
16
|
async def start(self) -> None:
|
|
17
|
+
"""Called once before consuming begins. Override for setup."""
|
|
18
18
|
pass
|
|
19
19
|
|
|
20
|
-
@abstractmethod
|
|
21
20
|
async def stop(self) -> None:
|
|
21
|
+
"""Called once on graceful shutdown. Override for cleanup."""
|
|
22
22
|
pass
|
|
23
23
|
|
|
24
24
|
async def on_error(self, message: VsMessage, error: Exception) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vs-queue
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Pluggable async message queue library for Viveka Sutra — Redis Streams, RabbitMQ, retry, dead letter, and annotation-based consumers
|
|
5
5
|
Project-URL: Homepage, https://vivekasutra.com/
|
|
6
6
|
Project-URL: Source, https://github.com/vivekasutra/viveka-mula
|
|
@@ -315,13 +315,13 @@ Abstract base class for all consumers. Extend this and implement `handle` to pro
|
|
|
315
315
|
| Method | Description |
|
|
316
316
|
|---|---|
|
|
317
317
|
| `handle(message)` | Called for every message received. Raise any exception to trigger retry. |
|
|
318
|
-
| `start()` | Called once when the consumer begins. Use for setup. |
|
|
319
|
-
| `stop()` | Called once on graceful shutdown. Use for cleanup. |
|
|
320
318
|
|
|
321
|
-
**Optional override
|
|
319
|
+
**Optional overrides** (concrete no-ops by default — override only if you need them):
|
|
322
320
|
|
|
323
321
|
| Method | Description |
|
|
324
322
|
|---|---|
|
|
323
|
+
| `start()` | Called once when the consumer begins. Use for setup. |
|
|
324
|
+
| `stop()` | Called once on graceful shutdown. Use for cleanup. |
|
|
325
325
|
| `on_error(message, error)` | Called when `handle` raises an exception, before retry logic runs. Use for logging or alerting. |
|
|
326
326
|
|
|
327
327
|
**Example with error hook:**
|
|
@@ -374,9 +374,6 @@ Decorator that registers a `VsBaseConsumer` subclass as a listener. `VsQueueMana
|
|
|
374
374
|
class SimpleConsumer(VsBaseConsumer):
|
|
375
375
|
async def handle(self, message: VsMessage) -> None:
|
|
376
376
|
print(message.payload)
|
|
377
|
-
|
|
378
|
-
async def start(self) -> None: pass
|
|
379
|
-
async def stop(self) -> None: pass
|
|
380
377
|
```
|
|
381
378
|
|
|
382
379
|
**Example — full configuration:**
|
|
@@ -543,9 +540,6 @@ class DlqConsumer(VsBaseConsumer):
|
|
|
543
540
|
f"Message permanently failed | id={message.id} retries={message.retry_count}",
|
|
544
541
|
payload=message.payload,
|
|
545
542
|
)
|
|
546
|
-
|
|
547
|
-
async def start(self) -> None: pass
|
|
548
|
-
async def stop(self) -> None: pass
|
|
549
543
|
```
|
|
550
544
|
|
|
551
545
|
**Example — replaying a DLQ message:**
|
|
@@ -938,9 +932,9 @@ Abstract base. Extend and implement `handle` to process messages.
|
|
|
938
932
|
| Method | Required | Description |
|
|
939
933
|
|---|---|---|
|
|
940
934
|
| `handle(message)` | Yes | Process a message. Raise to trigger retry. |
|
|
941
|
-
| `start()` |
|
|
942
|
-
| `stop()` |
|
|
943
|
-
| `on_error(message, error)` | No | Called on `handle` failure before retry |
|
|
935
|
+
| `start()` | No — no-op by default | Setup before consuming begins |
|
|
936
|
+
| `stop()` | No — no-op by default | Cleanup on shutdown — called on graceful cancel |
|
|
937
|
+
| `on_error(message, error)` | No — no-op by default | Called on `handle` failure before retry |
|
|
944
938
|
|
|
945
939
|
---
|
|
946
940
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|