Inquir Compute logoInquir Compute
Сравнение · Inquir Compute

Фоновые задачи для Vercel без worker-клея

Оставьте Next.js и фронтенд на Vercel. Перенесите обработку вебхуков, рассылки, синхронизацию и фоновую обработку в Inquir — Node.js 22, Python 3.12, Go 1.22 без 10-секундного таймаута Vercel Functions.

Last updated: 2026-04-20

  • Keep on Vercel: Next.js app, previews, edge middleware, static assets.
  • Move to Inquir: background jobs, cron tasks, webhook async handoff, long-running processing.
  • Use both together: Vercel calls Inquir gateway routes to enqueue work; Inquir pipelines run it and post results back.

Direct answer

Фоновые задачи для Vercel без worker-клея. Next.js остаётся на Vercel; Inquir добавляет HTTP-эндпоинты, которые принимают вебхуки, ставят задачи в пайплайн и продолжают работу без HTTP-таймаута.

When it fits

  • Задача занимает больше 10–60 секунд
  • Нужны повторы, история и изоляция по типу задачи

Tradeoffs

  • Для лёгких фоновых задач с небольшим объёмом Vercel Cron или простые отложенные вызовы через `waitUntil` могут быть достаточны.
  • Если вся инфраструктура уже в экосистеме Vercel и задачи укладываются в таймаут — переезд нецелесообразен.

Почему фоновые задачи не помещаются в Vercel Functions

Vercel Functions отлично подходят для SSR и API-маршрутов, но ограничены по времени выполнения. Длинные задачи — импорт CSV, рассылка, синхронизация с внешними API — не вписываются в рамки.

Настраивать отдельный worker-процесс или очередь только ради фоновых задач — лишний сервис для поддержки.

Когда Vercel Queue / Cron достаточно

Для лёгких фоновых задач с небольшим объёмом Vercel Cron или простые отложенные вызовы через `waitUntil` могут быть достаточны.

Если вся инфраструктура уже в экосистеме Vercel и задачи укладываются в таймаут — переезд нецелесообразен.

Почему Inquir хорошо дополняет Vercel

Next.js остаётся на Vercel; Inquir добавляет HTTP-эндпоинты, которые принимают вебхуки, ставят задачи в пайплайн и продолжают работу без HTTP-таймаута.

Одна функция на задачу: зависимости изолированы, секреты хранятся в рабочем пространстве, история выполнения доступна в консоли.

Что Inquir добавляет к Vercel-стеку

Без таймаута HTTP

Пайплайны и задачи работают вне HTTP-окна — вебхук принимает запрос и возвращает 202, тяжёлая работа продолжается в фоне.

Изолированные контейнеры

Node.js 22, Python 3.12, Go 1.22 в изолированных контейнерах с поддержкой нативных модулей через слои.

Секреты вне кода

Ключи API хранятся в переменных окружения функции; ни в Next.js, ни в git они не попадают.

Cron и вебхуки

Одно рабочее пространство — расписания, HTTP-маршруты и вебхуки с общей историей вызовов.

Как подключить Inquir к Vercel-приложению

1

Создать функцию в Inquir

Функция принимает то же тело запроса, что уже отправляет Next.js-обработчик.

2

Вызвать из Next.js

В Server Action или API Route: fetch к шлюзу Inquir, вернуть 202 пользователю, продолжить в фоне.

3

Добавить наблюдаемость

История вызовов и логи в консоли Inquir; алерты по ошибкам не зависят от Vercel Log Drain.

Next.js → Inquir: enqueue a background job

Next.js API route returns 202 immediately; triggers an Inquir pipeline in the background. The pipeline step does the slow work and posts a webhook back when done.

app/api/generate-pdf/route.ts (Next.js)
export async function POST(request: Request) {
  const { reportId } = await request.json();
  // Enqueue background job on Inquir — do not await
  await fetch(process.env.INQUIR_GATEWAY_URL + '/jobs/generate-pdf', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${process.env.INQUIR_API_KEY}`,
    },
    body: JSON.stringify({ reportId }),
  });
  return Response.json({ status: 'queued' }, { status: 202 });
}
jobs/generate-pdf.mjs (Inquir function)
export async function handler(event) {
  const { reportId } = JSON.parse(event.body || '{}');
  if (!reportId) return { statusCode: 400, body: JSON.stringify({ error: 'reportId required' }) };
  const pdf = await buildReport(reportId);
  await storage.upload(pdf, `reports/${reportId}.pdf`);
  await notifyUser(reportId);
  return { reportId, size: pdf.byteLength };
}

Когда добавлять Inquir к Vercel

Когда это уместно

  • Задача занимает больше 10–60 секунд
  • Нужны повторы, история и изоляция по типу задачи

Когда лучше не трогать

  • Задача укладывается в таймаут Vercel Functions и не требует изоляции зависимостей

Вопросы и ответы

Как вызвать Inquir из Next.js?

Обычный fetch к URL шлюза с API-ключом в заголовке Authorization. Inquir возвращает 202 до того, как задача завершится.

Нужен ли общий домен?

Нет. Шлюз Inquir работает на своём домене; Next.js обращается к нему как к любому внешнему API.

What about Vercel Fluid Compute?

Fluid Compute extends concurrency for serverless functions on Vercel—useful when IO-heavy work fits within request scope. Use Inquir for work that genuinely needs to outlive the HTTP request, run on a schedule, or continue after a webhook ACK.

Do I need to manage a separate queue?

No. Inquir pipelines handle queuing, retries, and observability. Your Vercel API route just calls an Inquir gateway route—Inquir manages the rest.

Inquir Compute logoInquir Compute

Самый простой способ запускать AI-агентов и backend-джобы без инфраструктуры.

Связаться info@inquir.org

© 2025 Inquir Compute. Все права защищены.