Я пытаюсь настроить сценарий для объединения некоторых переменных внутри последовательности , если они существуют , чтобы поместить соответствующие тэги метаданных в визуализированный HTML-документ.
Мой код конкатенации:
data = "\n\n" + "\n\n\n" + paras.join("\n\n") + "\n\n\n";
Я пытаюсь добавить , если
в него (между первым и вторым изделия) входят следующие операторы:
if (typeof metadata_title !== "undefined") {
"" + metadata_title + " \n"
}
if (typeof metadata_author !== "undefined") {
"\n"
}
if (typeof metadata_date !== "undefined") {
"\n"
}
Но я не могу добавить ни одну из этих инструкций непосредственно в код конкатенации (это вызывает ошибку: Непредвиденный маркер (
).
Как лучше всего добавить такие операторы в мою последовательность конкатенации?
-121--734295-
Эти вопросы продолжаются из того, что я узнал из моего вчерашнего вопроса под названием , используя git для распространения ночных построений .
В ответах на вышеуказанные вопросы было ясно, что git не будет соответствовать моим потребностям и было рекомендовано повторно изучить с помощью BitTorrent.
Краткая версия
Необходимо распространять ночные сборки среди 70 + людей каждое утро, необходимо использовать git BitTorrent для балансировки нагрузки при переносе.
Длинная версия
NB. Вы можете пропустить следующий абзац, если прочитали мой предыдущий вопрос .
Каждое утро мы должны раздавать нашу ночную постройку в студию из более чем 70 человек (художников, тестеров, программистов, производства и т.д.). До сих пор мы копировали сборку на сервер и записывали программу синхронизации, которая извлекает ее (используя Robocopy внизу); даже при установке зеркал скорость передачи недопустимо медленна, так как она занимает до часа или более для синхронизации в пиковое время (время вне пика составляет примерно 15 минут), что указывает на узкое место в аппаратном вводе-выводе и, возможно, полосу пропускания сети.
Что я знаю до сих пор
Что я нашел до сих пор:
я нашел отличную запись в Википедии о BitTorrent протокола , который был интересным читать (я только ранее знал основы того, как торренты работают). Также найден ответ StackOverflow на обмене BITFIELD, который происходит после подтверждения связи между клиентом и сервером.
Я также нашел библиотеку MonoTorrent C # Library ( GitHub Source ), которую я могу использовать для записи нашего собственного трекера и клиента. Мы не можем использовать готовые трекеры или клиенты (например, uTorrent).
Вопросы
В моем первоначальном проекте мы создаем систему .торрент и добавление в трекер. Я бы супер-затравка торрент, используя наши существующие зеркала сборки.
Нужно ли с помощью этой конструкции создавать новый файл .torrent для каждой новой сборки? Другими словами, можно ли создать «rolling» .torrent , где, если содержимое сборки изменилось только 20% это все, что нужно загрузить, чтобы получить последнюю ?
... Вообще-то. Написав вышеуказанный вопрос, я думаю, что мне нужно будет создать новый файл , однако я мог бы загрузить в то же место на компьютере пользователей, и хэш будет автоматически определять то, что у меня уже есть. Это правильно?
В ответ на комментарии
Для полной синхронизации вся сборка (включая: игру, исходный код, локализованные данные и образы дисков для PS3 и X360) ~ 37 000 файлы и входящие в только под 50GB. Это будет увеличиваться по мере продолжения производства. Эта синхронизация заняла 29 минут, чтобы завершить в то время, когда происходит только 2 других синхронизации, которые низкий пик, если вы считаете, что в 9 утра у нас будет 50 + людей, желающих получить последнюю.
Мы исследовали дисковый ввод-вывод и полосу пропускания сети с помощью ИТ-отдела; вывод заключался в том, что сетевое место хранения насыщается. Мы также записываем статистику в базу данных синхронизации, эти записи показывают, что даже с горсткой пользователей мы получаем неприемлемые скорости передачи.
В связи с тем, что не используются готовые клиенты, юридическая проблема заключается в наличии приложения, такого как uTorrent , установленного на компьютерах пользователей, учитывая, что другие предметы могут быть легко загружены с помощью этой программы. Мы также хотим иметь пользовательский рабочий процесс для определения того, какое построение вы хотите получить (например, только PS3 или X360 в зависимости от того, что DEVKIT у вас на столе) и иметь уведомления о новых построениях и т.д. Создание клиента с помощью MonoTorrent - не та часть, о которой я беспокоюсь.