Skip to content

fix: Run worker scripts sequentially #202

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Mar 31, 2025
Merged

Conversation

justinvdm
Copy link
Collaborator

Context

We have a way of running scripts with code run inside of workers - this what pnpm seed uses (so that it can use d1 the same way an application would for populating seed data).

Our "worker script" runner relies on CF's vite plugin, the same as what we use for pnpm dev. This plugin relies on Miniflare, which starts up something called an inspector on port 9229. It is not currently possible to configure this port through the vite plugin, though with a small PR it could be made simple enough to do, as Miniflare itself does appear to support the inspector port number as an option.

We also have a postinstall hook in our starters, that will migrate the database and run the seed script.

In our monorepo, pnpm runs each starter's postinstall concurrently, and doesn't offer configuration for changing this behaviour. They offer a cli flag, but it isn't practical for us to need to provide this flag everywhere we need to pnpm install

Problem

The concurrent pnpm installs cause concurrent worker script runs, which cause multiple inspector port listen attempts to happen on 9229 concurrently. Implications

  1. Our own pnpm install (e.g. on CI) are broken until we fix this
  2. Users can't run worker scripts concurrently

Solution

Queue worker script runs to happen sequentially. We use a lockfile rather than waiting for 9229 to open up in order to mitigate a stampede of port listens when the port does eventually free up.

Copy link

cloudflare-workers-and-pages bot commented Mar 31, 2025

Deploying redwood-sdk-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: dac5245
Status:⚡️  Build in progress...

View logs

@justinvdm justinvdm merged commit f731dfb into main Mar 31, 2025
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant