Honor consumer rate limit timeouts

This commit is contained in:
elpresidank 2026-06-02 06:03:36 -05:00
parent 46ae1dca82
commit eaa7921314
6 changed files with 254 additions and 32 deletions

View file

@ -8,6 +8,7 @@ export interface MessagingRuntimeConfig {
readonly consumerReceiveTimeoutMs: number;
readonly consumerErrorBackoffMs: number;
readonly rateLimitRetryMs: number;
readonly rateLimitTimeoutMs: number;
readonly requestTimeoutMs: number;
}
@ -15,6 +16,7 @@ export const defaultMessagingRuntimeConfig: MessagingRuntimeConfig = {
consumerReceiveTimeoutMs: 2_000,
consumerErrorBackoffMs: 1_000,
rateLimitRetryMs: 10_000,
rateLimitTimeoutMs: 7_200_000,
requestTimeoutMs: 300_000,
};
@ -28,6 +30,9 @@ export const loadMessagingRuntimeConfig = Effect.fn("loadMessagingRuntimeConfig"
const rateLimitRetryMs = yield* Config.number("TG_RATE_LIMIT_RETRY_MS").pipe(
Config.withDefault(defaultMessagingRuntimeConfig.rateLimitRetryMs),
);
const rateLimitTimeoutMs = yield* Config.number("TG_RATE_LIMIT_TIMEOUT_MS").pipe(
Config.withDefault(defaultMessagingRuntimeConfig.rateLimitTimeoutMs),
);
const requestTimeoutMs = yield* Config.number("TG_REQUEST_TIMEOUT_MS").pipe(
Config.withDefault(defaultMessagingRuntimeConfig.requestTimeoutMs),
);
@ -36,6 +41,7 @@ export const loadMessagingRuntimeConfig = Effect.fn("loadMessagingRuntimeConfig"
consumerReceiveTimeoutMs,
consumerErrorBackoffMs,
rateLimitRetryMs,
rateLimitTimeoutMs,
requestTimeoutMs,
} satisfies MessagingRuntimeConfig;
});