更新
This commit is contained in:
@@ -23,7 +23,9 @@ from rpa_engine.playwright_worker import DouyinWorker
|
||||
|
||||
class _RecordingQueue:
|
||||
def __init__(self) -> None:
|
||||
self.jobs: list[tuple[float, object, str, dict, frozenset[str]]] = []
|
||||
self.jobs: list[
|
||||
tuple[float, object, str, dict, frozenset[str], bool]
|
||||
] = []
|
||||
|
||||
async def enqueue(
|
||||
self,
|
||||
@@ -33,11 +35,19 @@ class _RecordingQueue:
|
||||
details=None,
|
||||
merge_key="",
|
||||
merge_keys=None,
|
||||
immediate_if_idle=False,
|
||||
) -> int:
|
||||
keys = merge_keys if merge_keys is not None else [merge_key]
|
||||
normalized_keys = frozenset(str(key) for key in keys if str(key or "").strip())
|
||||
self.jobs.append(
|
||||
(delay_seconds, callback, description, dict(details or {}), normalized_keys)
|
||||
(
|
||||
delay_seconds,
|
||||
callback,
|
||||
description,
|
||||
dict(details or {}),
|
||||
normalized_keys,
|
||||
bool(immediate_if_idle),
|
||||
)
|
||||
)
|
||||
return len(self.jobs)
|
||||
|
||||
@@ -75,6 +85,7 @@ class _RecordingQueue:
|
||||
job[2],
|
||||
merged_details,
|
||||
frozenset(job[4] | incoming_keys),
|
||||
job[5],
|
||||
)
|
||||
return {
|
||||
"status": "merged",
|
||||
@@ -123,6 +134,8 @@ class ReplyQueueIntegrationTests(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
self.assertEqual(len(service._reply_queue.jobs), 1)
|
||||
self.assertEqual(match_reply.await_count, 1)
|
||||
self.assertEqual(service._reply_queue.jobs[0][0], 60)
|
||||
self.assertTrue(service._reply_queue.jobs[0][5])
|
||||
details = service._reply_queue.jobs[0][3]
|
||||
self.assertEqual(details["sender_name"], "张三")
|
||||
self.assertEqual(details["conversation_id"], "conv-1")
|
||||
|
||||
Reference in New Issue
Block a user