Самый простой способ проверить функцию, назначенную для retry_strategy
, - это переместить ее за пределы вызова redis.createClient
и экспортировать ее:
export const retryStrategy = function (options) {
if (options.error) {
if (options.error.code === 'ECONNREFUSED') {
return new Error('The server refused the connection');
}
if (options.error.code === 'ECONNRESET') {
return new Error('The server reset the connection');
}
if (options.error.code === 'ETIMEDOUT') {
return new Error('The server timeouted the connection');
}
}
if (options.total_retry_time > 1000 * 60 * 60) {
return new Error('Retry time exhausted');
}
if (options.attempt > 10) {
return undefined;
}
return Math.min(options.attempt * 100, 3000);
}
const client = redis.createClient({
retry_strategy: retryStrategy
...
Затем вы можете импортировать ее и проверить напрямую: [ 115]
import { retryStrategy } from './your-module';
test('retryStrategy', () => {
expect(retryStrategy({ attempt: 5 })).toBe(500); // SUCCESS
...
})
JiBX. Ранее я использовал солонка XML , но JiBX оказался значительно лучше, особенно с точки зрения производительности (прямой порт некоторого кода приложения от Castor XML к JiBX сделал его 9x быстрее). Я также нашел, что отображающийся формат для JiBX был более изящным, чем Castor.
JiBX достигает своей производительности при помощи управления байт-кодом посткомпиляции, а не отражательного подхода, принятого Castor. Это имеет преимущество, что оно помещает меньше требований к способу, которым Вы пишете свои отображенные классы. Нет никакой потребности в методах считывания, методах set и конструкторах без аргументов только для удовлетворения инструментов. Большую часть времени можно записать класс, не рассматривая отображающиеся проблемы и затем отобразить его без модификаций.
XmlBeans является хорошим выбором особенно, если Вы 'повредили' файлы XSD/WSDL.
Don упомянул
EmployeesDocument empDoc = EmployeesDocument. Factory.parse(xmlFile);
.. но это может также взять Узел, или Файл или примерно любой источник.
Никакая борьба с пространствами имен, пересеките к объекту, который Вы хотите в неМаршалл и Factory.parse это.
Желание я нашел его 2 недели назад.
Мы используем Castor. Это удовлетворяет нашим потребностям довольно хорошо.
Я задавался вопросом точно тот же вопрос, и наконец я нашел это тестами производительности сделанный IBM. http://www.ibm.com/developerworks/library/x-databdopt2/ . JiBX является моим выбором, который я предполагаю, hehe.
Если Вы хотите сделать обоснованное решение, необходимо быть ясными, почему Вы переводите между объектами Java и XML. Причем причина состоит в том, что различные технологии в этом пространстве пытаются решить различные проблемы. Различные инструменты попадают в две категории:
Для xml сериализации, Xstream трудно победить. JAXB является стандартом для привязки XML.
В любом случае при использовании J2EE, необходимо будет обратить особое внимание на классы, полученные от JPA начиная с прокси класса и персистентности, определенные типы набора могут перепутать привязку / инструменты сериализации.
Если у Вас есть XSD для XML, и Вы не должны связывать данные с существующим набором классов, то мне действительно нравится XMLBeans. В основном это работает как это:
, Связывающей XML-документ со сгенерированными классами, так же просто как:
EmployeesDocument empDoc = EmployeesDocument.Factory.parse(xmlFile);
Мы используем xstream. Маршалинг / немаршалинг тривиален. Посмотрите их учебное руководство для примеров.
Я использовал солонку 7 лет назад - она работала довольно хорошо. используемые ДАТЫ. Не много вариантов в то время.
В текущих проектах, я использовал
1) JAXB - стандарты базирующаяся, Ссылочная реализация доступная, командная строка и доступные инструменты муравья. последняя версия - 2.1.8 java 5 потребностей +.
2) XStream - для немаршалинга Мыла - нужен Java 5 +. Не так быстро и стандарты, совместимые как последний JAXB.
BR,
~A
Я использовал Jaxb с переменным успехом. В то время (несколько лет назад) полная документация была тускла и основная документация использования (включая то, где загрузить реализации), было трудным найти или варьировался.
синтаксический анализатор, который записал классы Java, был довольно хорош с небольшим несоответствием против исходного XSD (хотя я думаю, что это имело проблемы при поддержке абстрактных элементов XML).
я не использовал его с тех пор, но у меня есть предстоящий проект, который потребует просто такой платформы, и мне будет интересно знать как кто-либо еще ярмарки с вышеупомянутым.
Jibx - то, что используется здесь. Это очень быстро, но привязка может быть немного хитрой. Однако особенно полезно, если у Вас есть XML-схемы, описывающие Ваши объекты области, поскольку это действительно отображается хорошо на XSD (существует даже бета инструмент XSD2Jibx, который может взять XSDs и создать классы тупикового домена и отображения, которые можно затем взять и подключить коаксиальным кабелем для установки существующей модели предметной области).
Это управляет байт-кодом, таким образом, это должно быть выполнено после начальной компиляции Java .class файлы. Можно использовать плагин Знатока для него или просто использовать его непосредственно (плагин Eclipse, казалось, не работал на меня).