При одновременном доступе он останавливается у противопожарной стены. : Безопасность: Symfony2

0

среда, предварительное условие

  • Функция аутентификации (Безопасность) смонтирована. (config: брандмауэры)
  • Установлен пакет FOSUserBundle.
  • Следующая процедура выполняется в состоянии входа в систему.

Существует простое действие.

маршрутизация: demo_home_index

indexAction()
{
    sleep(60);

    return // ...
}

И есть действие, по которому считывается файл.

маршрутизация: demo_home_read

public function readAction()
{
    $file       = "/path/to/file/read.txt";
    $contents   = false;

    if (file_exists($file)) {
        $fp = fopen($file, 'r');
        $contents = fgets($fp);
        fclose($fp);
    }

    return new Response(json_encode(array(
        'contents' => $contents,
    )));
}

Итак, сначала из UI, асинхронности, я обращаюсь к indexAction. В то же время он обрабатывает то, что является функцией интервалов чтения файла.

$.ajax({
    url         : Routing.generate("demo_home_index"),
    type        : "GET",
    dataType    : 'json'
})
.done(function(response){
    // This isn't returning for 60 seconds for a sleep.
    console.log(response);
});

var timer = setInterval(function(){
    $.ajax({
        url         : Routing.generate("demo_home_read"),
        type        : "GET",
        dataType    : 'json'
    })
    .done(function(response){
        console.log(response);
    });
}, 3000);

На этот раз интервал доступа приостанавливается, когда выполняется первый доступ. Таким образом, когда первый доступ завершен, другой доступ также завершается последовательно.

Это происходит и при нормальном доступе. (не асинхронно) Хотя indexAction (sleep) обрабатывается, даже если я получаю доступ к другому действию (другой странице) в браузере вкладок, он останавливается. (Браузер будет состоянием загрузки)

Не останавливаясь, он способен обрабатывать одновременно?

Возможно ли изменить настройку брандмауэров Symfony2?

Или, возможно ли изменить настройку FOSUserBundle?

Я нахожусь в состоянии, которое сейчас не знает причины.

Спасибо.

Теги:
fosuserbundle

1 ответ

0
Лучший ответ

Вероятно, это проблема с файлами сеансов на основе файлов. В основном, управление сеансом PHP блокирует файл сеанса, а следующие запросы (в том же сеансе) должны ждать, пока блокировка не будет выпущена.

Symfony 2 заблокировал параллелизм

Ещё вопросы

Сообщество Overcoder
Наверх
Меню