Выполнение нескольких Агентов TeamCity на том же компьютере?

Если Вы не используете nullable типы, лучшая вещь сделать проверить, чтобы видеть, является ли значение столбца DBNull. Если это - DBNull, то установленный Ваша ссылка на то, что Вы используете для пустого/пустого для соответствующего типа данных.

DataRow row = ds.Tables[0].Rows[0];
string value;

if (row["fooColumn"] == DBNull.Value)
{
   value = string.Empty;
}
else 
{
   value = Convert.ToString(row["fooColumn"]);
}

, Поскольку Manu сказал, можно создать класс преобразования с перегруженным методом преобразования на тип, таким образом, Вы не должны перчить свой код если/еще блоки.

я однако подчеркну, что nullable типы являются лучшим маршрутом, чтобы пойти, если можно использовать их. Обоснование состоит в том, что с не допускающими NULL-значения типами, Вы оказываетесь перед необходимостью обращаться к "магическим числам" для представления пустого указателя. Например, при отображении столбца на международную переменную как Вы собираетесь представить DBNull? Часто Вы не можете использовать 0, потому что 0 имеет допустимое значение в большинстве программ. Часто я вижу, что люди отображают DBNull на интервал. MinValue, но это могло потенциально быть проблематично также. Мой лучший совет - это:

  • столбцы For, которые могут быть пустыми в базе данных, используют nullable типы.
  • столбцы For, которые не могут быть пустыми в базе данных, используют регулярные типы.

типы Nullable были сделаны решить эту проблему. Однако если Вы будете на более старой версии платформы или будете работать на кого-то, кто не делает grok nullable типов, пример кода добьется цели.

82
задан abatishchev 31 August 2013 в 19:14
поделиться

1 ответ

Да, возможно :

На одном компьютере можно установить несколько агентов. Они функционируют как отдельные агенты, и TeamCity работает с ними как с разными агентами, не используя тот факт, что они используют одну и ту же машину. После установки одного агента вы можете установить дополнительный, при соблюдении следующих условий:

  • агенты устанавливаются в отдельные каталоги
  • они имеют особую работу, а временные каталоги
  • buildAgent.properties настроены на разные значения для свойств name и ownPort

Убедитесь, что нет конфигураций сборки, в которых указан абсолютный каталог извлечения (в качестве альтернативы, убедитесь, что в таких конфигурациях сборки включена опция «чистая проверка», и они не могут выполняться параллельно).

Под Windows, чтобы установить дополнительные агенты как службы, измените [каталог агента] \ launcher \ conf \ wrapper.conf для изменения свойств, чтобы они имели различное имя на компьютере:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description
128
ответ дан 24 November 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: