Comments (3)
Some more thoughts for making this commonly-requested feature a reality:
- When a command is being executed,
- Collect the resulting output.
- Ensure that no other Drall sub-instance is printing output at the moment.
- Print the collected output.
- Preferably, this should only be used when running in parallel mode 🤔
- When a command is issued in parallel mode,
- Determine the number of parallel processes requested, say,
p
. - Determine the sites on which the commands have to be executed.
- Break down the list of sites into
p
number of sets. - Issue one
drall
command for each of these sets in non-parallel mode.
- Determine the number of parallel processes requested, say,
Progress tracking
This can probably be dealt with in a separate issue where Drall shows better progress with progress bar(s). Or maybe provide reporting formats like progress
, text
, dots
, etc.
- Option 1: Each process tracks its own progress.
- Option 2: The main
drall
command (that's running in parallel mode) tracks the progress.
For this issue, we just keep things simple and not think about tracking progress.
from drall.
Instead of running n
drush commands with sub-lists of the sites, it seems that using a queue/workers approach will be better. I've updated the issue description to show the new proposed solution. Let's see how it goes.
from drall.
Here's a sample task file. This is generated by Drush for internal use, so the user doesn't need to worry about it.
Location: /tmp/drall/UUID.drallq.json
.
{
"version": "x.y.z",
"status": {
"total": 5,
"pending": 3,
"running": 1,
"done": 1,
},
"task": {
"command": "drush --uri=@@uri core:status --fields=site",
"placeholder": "uri",
"todo": {
"ID": {
"id": "ID",
"status": "pending"
}
}
}
}
The respective lock file would be located at: /tmp/drall/UUID.dralltask.lock
. If the file exists, then a lock is in place.
from drall.
Related Issues (20)
- Ensure windows compatibility
- Require PHP >= 8.0
- Show progress bars during "drall exec" HOT 1
- Drall debug doesn't replace @@site with site's alias
- Add an option to disable output buffering HOT 1
- Drall stuck when running in Bitbucket pipelines HOT 1
- Unify the ExecDrush and ExecShell commands HOT 3
- Suggest exec:drush when a matching command is not found HOT 1
- Create option: --drall-no-execute
- Drall 2.x and 3.x cannot catch some Drush output HOT 5
- Fix and freeze v2.x HOT 1
- Drall stuck when running a Drush command on a remote site inside a Docker container HOT 11
- Handle SIGINT gracefully
- Sort token values by default; Use --no-sort to disable sorting HOT 1
- Create option: --drall-interval
- Add support for Drupal 10.x and Drush 12.x
- Add a resume mechanism
- How to run if installed into Drupal website project? HOT 5
- Drall group from drush site aliases HOT 1
- Use --drall-group=prod with only drush aliases files and no sites.*.php HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from drall.