আমি ড্রুপাল মাল্টি-সাইটগুলি (একক কোডবাস, একাধিক সাইট / *) ব্যবহার করছি। এর পাশাপাশি, আমি তাদের পরিচালনার জন্য দ্রাশ আলিয়াস ব্যবহার শুরু করেছি:
$ cat sites/all/drush/aliases.drushrc.php
<?php
$aliases['localdev'] = array(
'site-list' => array(
'site1',
'site2',
'site3',
),
);
?>
এটি আমাকে সহজেই সমস্ত সাইটে ক্রিয়া সম্পাদন করতে দেয়:
$ drush @localdev cc all
>> আমি সবেমাত্র আবিষ্কার করেছি যে আমি কেবলমাত্র @ সাইটগুলি ব্যবহার করতে পারি এবং ড্রশার্ক ফাইলটি রেখে যেতে পারি ।
এটি করার ফলে, সিরিজের প্রতিটি সাইটগুলিতে (একবারে একটি করে) চালিত হবে "সিসি অল"।
আমি পরবর্তী স্তরে এই গ্রহণ করা এবং সমস্ত সাইটকে এই কমান্ড চালানোর জন্য চেষ্টা করতে চান simulantiously । আমি ছাপ অধীন কিছু পড়া, এবং টা কাজ করা হয়েছে করেছি যে 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'.
যাইহোক, আমি যা বুঝতে পারি না তা হ'ল আমি কীভাবে ড্রশ কমান্ড লাইন থেকে এটি ব্যবহার করব । ড্রাশের কাছে যাওয়ার জন্য আমার কি কোনও বিকল্প আছে বা আমার একটি সেটিংস ফাইলে কিছু সেট করার দরকার আছে?
যে কোনও তথ্য অনেক প্রশংসা করা হবে - আমার কৌতূহল piqued হয়!
হালনাগাদ
নীচের উত্তরের উপর ভিত্তি করে, আমি একটি সাধারণ পরীক্ষা তৈরি করতে সক্ষম হয়েছিল যা দ্রাশের আচরণ প্রদর্শন করে এবং কিছু উপসংহার আঁকা:
একাধিক সাইটে ক্রিয়াকলাপ চালানোর সময় ড্রশের ডিফল্ট আচরণটি সহবর্তী প্রক্রিয়াগুলি ব্যবহার করা হয়:
$ drush @localdev ev "drupal_set_message(time()); sleep(5);"
Continue? (y/n): y
site1 >> 1360512943 [status]
site2 >> 1360512943 [status]
site3 >> 1360512943 [status]
উপকরণ ব্যবহার না করার পরেও এটি সত্য এবং ড্রশ-এর অন্তর্নির্মিত @ সাইটগুলি ব্যবহার করেও এটি সত্য। এই দুটি কমান্ড উপরের মতো একই আচরণ করে:
$ drush site1,site2,site3 ev "drupal_set_message(time()); sleep(5);"
$ drush @sites ev "drupal_set_message(time()); sleep(5);"
সমবর্তী প্রসেসের সংখ্যা পরিবর্তন করতে (ডিফল্ট হ'ল 4), '--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]