Мне связали вопрос с phing. Я использую его на своей локальной машине разработки для развертывания приложения, или я называю его через ssh от производственной машины? Я не уверен, где сделать шаги от Eran Galperin (Какова Ваша предпочтительная стратегия развертывания PHP). Я - новичок со сценариями развертывания. Так будьте прощающими :)
Marco
Обычно у вас есть два сценария развертывания - один, который вы запускаете локально , который ssh подключается к удаленному серверу, а затем запускает удаленный скрипт.
Ваш локальный сценарий может выполнить svn export
, заархивировать содержимое и сначала отправить его (scp) на удаленный сервер. Удаленный сценарий будет выполнять такие операции, как перенос, перезапуск служб и т. Д.
Phing можно применять по-разному.
Если у вас нет директив по развертыванию, лучше всего сначала сгенерировать «тестовую сборку» из вашей локальной копии, проверить, работает ли она должным образом, а затем сгенерировать продуктивную сборку.
В некоторых случаях, когда вам необходимо следовать определенным правилам в среде разработки, вы можете легко адаптировать Phing для удовлетворения этих требований.
Я бы пошел с пулом потоков, хотя у него есть свои проблемы, MS инвестирует в его улучшение, и кажется, что у .NET 4 будет улучшенный. На данный момент, я думаю, что лучше всего было бы использовать пул потоков, обернутый в ваш собственный объект и подождать с принятием решения о вашей собственной реализации
-121--3560006-Я знаю, что это старое, но я наткнулся на ту же самую точную проблему, и я нашел лучшее решение этого тогда с помощью розеток или отражения...
То, что я сделал, это создал новый класс, который уходит из WebHeaseCollection и обходит проверку того, что вы держите внутри него:
public class MyHeaderCollection:WebHeaderCollection
{
public new void Set(string name, string value)
{
AddWithoutValidate(name, value);
}
//or
public new string this[string name]
{
get { return base[name]; }
set { AddWithoutValidate(name, value); }
}
}
и вот как вы его используете:
var http = WebRequest.Create("http://example.com/");
var headers = new MyHeaderCollection();
http.Headers = headers;
//Now you can add/override anything you like without validation:
headers.Set("Host", http.RequestUri.Host);
//or
headers["Host"] = http.RequestUri.Host;
Надеюсь, это поможет любому, кто ищет это!
-121--2914408-Основная стратегия заключается в создании сборки (в основном копии веб-приложения, которую можно разместить в сети) на локальном компьютере, а затем ее развертывании на сервере.
Вы запускаете его на своей локальной машине, а PHPing подключится к производственному серверу и развернет сайт. :)
Вы можете делать это в обоих случаях. Вы можете запустить инструмент локально в процессе разработки, чтобы провести тесты и просто убедиться, что ваш код находится в хорошем состоянии. Автоматизация сервера (если вы решите это сделать) также может запускать тесты, генерировать документацию и развертывать изменения в тестовых или производственных установках.
Выполнение локальной работы снижает вероятность того, что процесс застопорится на настройке сервера, в то время как CI работает на регулярной основе, чтобы убедиться, что ничего не было сломано по ошибке.