nginx, fastcgi и открытые гнезда

Я экспериментирую с использованием fastcgi на nginx, но я столкнулся с некоторыми проблемами. Nginx не использует соединения повторно, он дает 0 в флагах BeginRequest, поэтому приложение должно закрыть соединение после завершения запроса.

У меня есть следующий код для закрытия:

socket.shutdown(SocketShutdown.BOTH);
socket.close();

Проблема в том, что соединения фактически не закрыты. Они задерживаются как TIME_WAIT, и nginx (или что-то в этом роде) не будут открывать новые связи. Думаю, я делаю что-то не так, когда закрываю розетки, но я не знаю, что... В связи с этим, как получить nginx для сохранения соединений открытыми?

Используется nginx 1,0,6 и D 2,055

EDIT: Не приблизился, но я также проверил опцию задержки, и она выключена:

linger l;
socket.getOption(SocketOptionLevel.SOCKET, SocketOption.LINGER, l);
assert(l.on == 0); // off

getOption возвращает 4, хотя.. Понятия не имею, что это значит. Возвращаемое значение является недокументированным.

ПРАВКА: Я также пытался использовать TCP_NODELAY в последнем отправленном сообщении, но это также не имело никакого эффекта:

socket.setOption(SocketOptionLevel.SOCKET, SocketOption.TCP_NODELAY, 1);

EDIT: nginx 1.1.4 поддерживает живые соединения. Это не работает так, как ожидалось, хотя.. Правильно сообщает, что сервер отвечает за управление временем жизни подключения, но по-прежнему создает новый сокет для каждого запроса.

-121--716203- UIView transiveWeyView не работает Вот viewDidLoad от главного контроллера вида в тестовом проекте: - (void) viewDidLoad {[super viewDidLoad]; UIView * containerView = [[UIView alloc] initWireFrame: CGRectMake (10, 10, 300,...

Вот viewDidLoad от главного контроллера вида в тестовом проекте:

- (void)viewDidLoad

{ [super viewDidLoad];

UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 300)];
[self.view addSubview:containerView];

UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[redView setBackgroundColor:[UIColor redColor]];
[containerView addSubview:redView];

UIView *yellowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[yellowView setBackgroundColor:[UIColor yellowColor]];


[UIView transitionWithView:containerView duration:3
                   options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
                       [redView removeFromSuperview];
                       [containerView addSubview:yellowView];
                   }
                completion:NULL];
}

Только что появится желтая рамка. Анимация отсутствует, независимо от того, какой вариант UIViewAnimationOption я пытаюсь использовать. Почему???

EDIT: Я также пытался использовать performSelector weyDelay для перемещения анимации из viewDidLoad и в другой метод. Тот же результат - анимация отсутствует.

Также попытался: [UIView transitionFromView:redView toView:yellowView duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft completion: NULL];

однако, желтое представление просто появляется. Анимация отсутствует.

8
задан soleil 30 September 2011 в 23:12
поделиться