Merge pull request 'Срок ответа OCR по умолчанию 5 → 20 мин (#87)' (#88) from feat/87-ocr-reply-timeout-20m into main
Reviewed-on: #88
This commit is contained in:
commit
71e55b19ca
@ -84,10 +84,11 @@ from src.services.result_mapping import run_mapping_loop
|
|||||||
|
|
||||||
WATCHDOG_PERIOD_SECONDS = 30 # период вахтёра сроков (spec «Таймаут ожидания результата»)
|
WATCHDOG_PERIOD_SECONDS = 30 # период вахтёра сроков (spec «Таймаут ожидания результата»)
|
||||||
PUBLISH_BATCH_SIZE = 50 # заданий за один проход публикатора (design D-6, LIMIT 50)
|
PUBLISH_BATCH_SIZE = 50 # заданий за один проход публикатора (design D-6, LIMIT 50)
|
||||||
# Срок ответа сервиса, если задание создано без `reply_deadline`: OCR — 5 мин (DBML note), парсер — так же
|
# Срок ответа сервиса, если задание создано без `reply_deadline`: OCR — 20 мин (решение владельца 09.10.2026; note DBML
|
||||||
|
# «OCR — 5 мин» устарела, OQ-159), парсер — 5 мин
|
||||||
DEFAULT_REPLY_TIMEOUT: dict[RecognitionPipeline, timedelta] = {
|
DEFAULT_REPLY_TIMEOUT: dict[RecognitionPipeline, timedelta] = {
|
||||||
RecognitionPipeline.tabular: timedelta(minutes=5),
|
RecognitionPipeline.tabular: timedelta(minutes=5),
|
||||||
RecognitionPipeline.image: timedelta(minutes=5),
|
RecognitionPipeline.image: timedelta(minutes=20),
|
||||||
}
|
}
|
||||||
REPUBLISH_COUNT_KEY = "republish_count" # счётчик повторов в `recognition_job.metrics` (design #6)
|
REPUBLISH_COUNT_KEY = "republish_count" # счётчик повторов в `recognition_job.metrics` (design #6)
|
||||||
|
|
||||||
|
|||||||
@ -247,10 +247,11 @@ async def test_publish_request_to_service( # noqa: PLR0913,PLR0917 - фикст
|
|||||||
assert request.s3.key == await jobs.s3_key(job_id)
|
assert request.s3.key == await jobs.s3_key(job_id)
|
||||||
assert request.attempt == 1
|
assert request.attempt == 1
|
||||||
assert request.schema_version == "1.0"
|
assert request.schema_version == "1.0"
|
||||||
# reply_deadline не был задан: вычислен при первой публикации (5 мин) и сохранён в задание
|
# reply_deadline не был задан: вычислен при первой публикации (парсер — 5 мин, OCR — 20 мин) и сохранён в задание
|
||||||
assert job.reply_deadline is not None
|
assert job.reply_deadline is not None
|
||||||
assert request.reply_deadline == job.reply_deadline
|
assert request.reply_deadline == job.reply_deadline
|
||||||
assert timedelta(minutes=4) < job.reply_deadline - before < timedelta(minutes=6)
|
expected = timedelta(minutes=20 if pipeline is RecognitionPipeline.image else 5)
|
||||||
|
assert expected - timedelta(minutes=1) < job.reply_deadline - before < expected + timedelta(minutes=1)
|
||||||
|
|
||||||
assert job.status is RecognitionStatus.published
|
assert job.status is RecognitionStatus.published
|
||||||
assert job.request_msg_id == f"{job_id}:1"
|
assert job.request_msg_id == f"{job_id}:1"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user