|
All checks were successful
build-image / build (push) Successful in 13m13s
The previous fix (yielding to the event loop between turf.union calls) was not enough: once the merged polygon gets complex with thousands of subscriptions, a single turf.union call can itself take seconds, and yielding between iterations doesn't help when one iteration alone blocks that long. Confirmed in staging: the site was still fully unresponsive (Cloudflare 524, curl hanging 2+ minutes, healthcheck failing) while a recompute ran. Validation/decoration (addNoisy/noNoisy, cheap) stays on the main thread; the actual circle+union chain now runs in a worker_thread (private/workers/unionWorker.js, plain CommonJS so meteor build copies it verbatim instead of compiling it) so the main event loop serving DDP/HTTP is never blocked by it, regardless of how slow any single turf call gets. |
||
|---|---|---|
| .. | ||
| accounts | ||
| api.js | ||
| calcUnionAsync.js | ||
| catchExceptions.js | ||
| cron.js | ||
| email.js | ||
| facts.js | ||
| feedback.js | ||
| fixtures.js | ||
| i18n.js | ||
| index.js | ||
| IPGeocoder.js | ||
| isMaster.js | ||
| leaflet-workaround.js | ||
| migrations.js | ||
| prerender.js | ||
| ravenLogger.js | ||
| rest.js | ||
| sentryTunnel.js | ||
| sitemaps.js | ||
| subsUnion.js | ||