Nhazi ahụ dị na docs/architecture/23-ops.md ngalaba 6. Workers na-agba
ọkwa weebụ dị nta. Ịha nhata na Workers adịghị n’ọrụ a (PRD ngalaba 12):
ihe ebumnobi a enweghị ike ime ka a na-ajụ mgbe ọ malitere, na-akpọ aha.
Ọnọdụ na mwepụta a
Nhazi ahụ adịlarị (apps/web/wrangler.jsonc, nhazi Nitro
cloudflare-module, njikọ Hyperdrive na nlele mmalite). Worker chọrọ usoro
nchekwa maka R2 dabara na S3 (QUIRE_STORAGE_DRIVER=s3), usoro ozi ozugbo
gafee arịrịọ (QUIRE_REALTIME_DRIVER=durable_objects ma ọ bụ centrifugo),
nchekwa ọnụ (QUIRE_CACHE_DRIVER=postgres ma ọ bụ valkey) na onye na-enye
email site na HTTP. Na-enweghị ha Worker jụrụ ịmalite, ndekọ ya akpọkwa
ntọala ọ bụla. Usoro Durable Objects bụ onye ahịa nke Worker ozi ozugbo dị
na apps/realtime-worker (otu Durable Object kwa channel maka mgbasa,
ọnụnọ na akụkọ, otu kwa mmadụ maka nkwụsị); bunye ya n’akụkụ, dị ka n’okpuru,
ma ọ bụ jiri Centrifugo.
Akụkụ dị iche iche
Akụkụ
Na Cloudflare
web
Worker na nodejs_compat
Postgres
N’èzí, a na-eru ya site na Hyperdrive: HYPERDRIVE maka ọrụ ngwa, REPORT_HYPERDRIVE maka ọrụ akụkọ na otu nchekwa data anụ ahụ ahụ. Ọkwa weebụ na-edegharị eriri njikọ ọ bụla na DATABASE_URL na QUIRE_REPORT_DATABASE_URL mgbe ọ malitere
Faịlụ
R2, site na API S3 ya (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); njikọ FILES na-ejikọta bucket
Ọrụ ndabere
pg-boss site na Hyperdrive mgbe a ga-etinye ọrụ n’ahịrị na ederede. Na QUIRE_QUEUE_DRIVER=cloudflare na worker ibe, ọrụ dị mfe (nnyefe ngosi na webhook na-enweghị usoro) na-aga site na Cloudflare Queues kama, ka a ghara ịjụ Postgres ajụjụ maka ha. Worker ibe na-agba ha abụọ
Ozi ozugbo
Worker ozi ozugbo, apps/realtime-worker, na Durable Objects
REPORT_HYPERDRIVE na-enye ọrụ akụkọ maka nchekwa data anụ ahụ
HYPERDRIVE kpọrọ. Ebumnobi a anaghị enye tenants a tụkwasịrị na nchekwa
data anụ ahụ ọzọ, dị ka akọwara n’okpuru.
Ihe ebumnobi a enweghị ike ime
A jụrụ na mmalite, na-edepụta nsogbu ọ bụla n’otu oge:
Enweghị SMTP. Jiri onye na-enye ọrụ site na HTTP na
QUIRE_EMAIL_PROVIDER_CONFIG.
Enweghị disk mpaghara.QUIRE_STORAGE_DRIVER ga-akpọ nchekwa ihe.
Enweghị ozi ozugbo ma ọ bụ nchekwa n’ime usoro. Workers anaghị
kekọrịta ncheta n’etiti arịrịọ, ya mere a jụrụ
QUIRE_REALTIME_DRIVER=inprocess na QUIRE_CACHE_DRIVER=memory.
Enweghị ClamAV, Gotenberg ma ọ bụ ffmpeg na Worker. A jụrụ
CLAMAV_URL, GOTENBERG_URL na FFMPEG_PATH atọrọ na Worker; tọọ ha na
worker ibe kama.
Enweghị otu nwere nchekwa data nke ha. Njikọ Hyperdrive nke Worker
na-adịgide na oge mbunye, ya mere otu nwere nchekwa data nke ya na-enweta
peeji doro anya “unavailable here”. Nye ya site na Compose ma ọ bụ Vercel.
Na otu ihe a na-ajụghị mana a ga-amarịrị: prerendering na incremental
static regeneration anaghị arụ ọrụ na Workers, n’agbanyeghị ihe akwụkwọ
framework kwuru. Ụzọ ọ bụla na-apụta n’arịrịọ ọ bụla.
Na ebumnobi a mee ka transaction dị mkpụmkpụ, ejidekwala otu gafee oku
netwọk: Hyperdrive na-emegharị ọnọdụ session mgbe njikọ laghachiri na ọdọ
mmiri, ya mere a na-atọ ọnọdụ tenant n’otu transaction.
Mbunye
Mepụta akụ:
bun run --bun wrangler hyperdrive create quire-app --connection-string="postgres://quire_app:...@db.example.com:5432/quire"bun run --bun wrangler hyperdrive create quire-report --connection-string="postgres://quire_report:...@db.example.com:5432/quire"bun run --bun wrangler r2 bucket create quire-filesbun run --bun wrangler queues create quire-jobs
Tinye id Hyperdrive abụọ na apps/web/wrangler.jsonc.
Tọọ nzuzo, otu n’otu oge na bun run --bun wrangler secret put <NAME> site na
apps/web: QUIRE_SECRET_KEY, QUIRE_MASTER_KEY,
QUIRE_EMAIL_PROVIDER_CONFIG, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY,
QUIRE_COLLAB_SIGNING_KEY, QUIRE_REALTIME_WORKER_SECRET. Ntọala nkịtị
(QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS,
QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) na-aga
na vars.
Wuo ma bunye site na apps/web:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Bunye Worker ozi ozugbo, na QUIRE_REALTIME_WORKER_SECRET nke ọkwa weebụ
na nzuzo token ya dịka QUIRE_REALTIME_TOKEN_SECRET (ọkwa weebụ na-ebinye
aka na token ozi ozugbo na QUIRE_REALTIME_TOKEN_SECRET nke ya, ma ọ bụ
na QUIRE_SECRET_KEY mgbe nke ahụ adịghị, ya mere jiri nke ọ na-eji),
tọọkwa QUIRE_REALTIME_WORKER_URL na ọkwa weebụ na adreesị ya:
cd apps/realtime-workerbun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRETbun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRETbun run --bun wrangler deploy
Maka ọrụ dị mfe na Cloudflare Queues, mepụta otu queue kwa queue dị mfe
tọọkwa ihe ndị a na worker ibe (token API na ọgụgụ na ide Queues):
bun run --bun wrangler queues create quire-events-notificationsbun run --bun wrangler queues create quire-events-notifications-deadbun run --bun wrangler queues create quire-events-webhooksbun run --bun wrangler queues create quire-events-webhooks-dead
QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID,
CLOUDFLARE_QUEUES_TOKEN, na QUIRE_QUEUE_PREFIX ma ọ bụghị quire-.
Gbaa họst ibe dị ka na ntuziaka Vercel, nzọụkwụ 3.
Mbugharị na-agba ebe ahụ, tupu mbunye Worker ọ bụla.
Nhazi a jụrụ na-egosi na bun run --bun wrangler tail dịka “The web tier did
not start on cloudflare”, na-esote ntọala ọ bụla ịgbanwe.