-
Notifications
You must be signed in to change notification settings - Fork 45
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
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
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.