Drupal 다중 사이트 (단일 코드베이스, 다중 사이트 / *)를 사용하고 있습니다. 이와 함께 Drush 별칭을 사용하여 별칭을 관리하기 시작했습니다.
$ cat sites/all/drush/aliases.drushrc.php
<?php
$aliases['localdev'] = array(
'site-list' => array(
'site1',
'site2',
'site3',
),
);
?>
이를 통해 모든 사이트에서 작업을 쉽게 수행 할 수 있습니다.
$ drush @localdev cc all
>> 방금 @sites를 사용 하고 drushrc 파일을 잊어 버릴 수도 있음을 알게되었습니다 .
이렇게하면 각 사이트마다 한 번에 하나씩 "cc all"이 실행됩니다.
나는 이것을 다음 단계로 옮기고 모든 사이트에서 이러한 명령을 동시에 실행하려고합니다 . 나는 약간의 독서를하고 있으며, Drush 가 실제로 이것을 지원 한다는 인상을 받고 있습니다. drush_invoke_process () 함수 (기능 문서에서) 포함 할 수 있습니다 $ backend_options을합니다 :
* 'invoke-multiple'
* If $site_alias_record represents a single site, then 'invoke-multiple'
* will cause the _same_ command with the _same_ arguments and options
* to be invoked concurrently (e.g. for running concurrent batch processes).
* 'concurrency'
* Limits the number of concurrent processes that will run at the same time.
* Defaults to '4'.
그러나 내가 알 수없는 것은 실제로 Drush 명령 줄에서 어떻게 사용하는지 입니다. Drush에 전달해야하는 옵션이 있습니까, 아니면 설정 파일에서 설정해야합니까?
모든 정보는 대단히 감사하겠습니다-나의 호기심은 화려합니다!
최신 정보
아래 답변을 바탕으로 Drush의 동작을 보여주는 간단한 테스트를 작성하고 몇 가지 결론을 도출 할 수있었습니다.
여러 사이트에서 작업을 실행할 때 Drush의 기본 동작은 동시 프로세스를 사용하는 것입니다.
$ drush @localdev ev "drupal_set_message(time()); sleep(5);"
Continue? (y/n): y
site1 >> 1360512943 [status]
site2 >> 1360512943 [status]
site3 >> 1360512943 [status]
별칭을 사용하지 않는 경우에도 마찬가지이며 Drush의 내장 @sites 별칭을 사용할 때도 마찬가지입니다. 이 두 명령은 위와 동일한 동작을합니다.
$ drush site1,site2,site3 ev "drupal_set_message(time()); sleep(5);"
$ drush @sites ev "drupal_set_message(time()); sleep(5);"
동시 프로세스 수를 변경하려면 (기본값은 4) drush 명령에서 '--concurrency = N'옵션을 전달할 수 있습니다. 예를 들어, 직렬 실행을 원하면 동시 프로세스 수를 1로 설정할 수 있습니다.
$ drush @localdev ev "drupal_set_message(time()); sleep(5);" --concurrency=1
Continue? (y/n): y
site1 >> 1360513387 [status]
site2 >> 1360513393 [status]
site3 >> 1360513399 [status]