INTEGRITY Документация

Пользовательские лимиты

Пользовательские лимиты позволяют программно ограничивать использование ресурсов Workers ваших клиентов. Вы можете задать лимиты на максимальное время CPU и количество подзапросов на один вызов. Если пользовательский Worker достигает одного из этих лимитов, он сразу же выбрасывает исключение.

Задайте пользовательские лимиты

Пользовательские лимиты можно задать в динамическом dispatch Worker:

export default {
	async fetch(request, env) {
		try {
			// parse the URL, read the subdomain
			let workerName = new URL(request.url).host.split(".")[0];
			let userWorker = env.dispatcher.get(
				workerName,
				{},
				{
					// set limits
					limits: { cpuMs: 10, subRequests: 5 },
				},
			);
			return await userWorker.fetch(request);
		} catch (e) {
			if (e.message.startsWith("Worker not found")) {
				// we tried to get a worker that doesn't exist in our dispatch namespace
				return new Response("", { status: 404 });
			}
			return new Response(e.message, { status: 500 });
		}
	},
};