Как настроить преобразователь AnyEvent::DNS по умолчанию?

Как настроить резолвер AnyEvent::DNS по умолчанию, хочу поменять max_outstanding, reuse, timeout. Есть переменная окружения $ENV{PERL_ANYEVENT_MAX_OUTSTANDING_DNS}, но как изменить reuse и timeout?


person Dmitriy    schedule 17.04.2017    source источник


Ответы (1)


$ENV{PERL_ANYEVENT_MAX_OUTSTANDING_DNS} используется только в том случае, если используется преобразователь по умолчанию, поэтому вы должны использовать преобразователь по умолчанию, поэтому вы можете просто изменить преобразователь по умолчанию.

use AnyEvent::DNS qw( );

my $resolver = AnyEvent::DNS->new(
   untaint         => 1,
   max_outstanding => $ENV{PERL_ANYEVENT_MAX_OUTSTANDING_DNS}*1 || ...,
   reuse           => ...,
   timeout         => ...,
);

$ENV{PERL_ANYEVENT_RESOLV_CONF}
   ? $resolver->_load_resolv_conf_file($ENV{PERL_ANYEVENT_RESOLV_CONF})
   : $resolver->os_config;

$AnyEvent::DNS::RESOLVER = $resolver;
person ikegami    schedule 17.04.2017
comment
Еще раз говорю спасибо. Я не совсем понимаю, что определяет повторное использование в настройках AnyEvent::DNS. В описании указано: количество секунд (по умолчанию: 300), в течение которых идентификатор запроса нельзя использовать повторно после тайм-аута. Если тайм-аута не было, то идентификаторы запросов могут быть повторно использованы немедленно. Что такое идентификатор запроса и почему он ждет 300 секунд? - person Dmitriy; 18.04.2017
comment
Не знаю. . . - person ikegami; 18.04.2017