javascript — длительное время загрузки сайта при запуске R-скрипта

Я пытаюсь запросить базу данных MySQL на веб-странице. В моем R-скрипте у меня есть 4 различные функции «запроса», а также несколько вычислений, которые будут отображать статистические графики на моей веб-странице, все они зависят от переменной «N». Я использую PHP (используя shell_exec) для вызова R и отправки «N». Я использую RMySQL & библиотеки ggplot2 в R.


Выполнение моего R-скрипта только с одной базовой функцией запроса (включая dbConnect (), dbGetQuery и on.exit (dbDisconnect ()), затем использование png (), plot () и dev.off () занимает ~ 15 секунд для отображения График на моем сайте.

С 2 функциями и 2 графиками у меня даже не хватило терпения подождать, чтобы посмотреть, работает ли он, так как время загрузки так долго. Сами запросы довольно длинные (возможно, их можно было бы упростить с помощью циклов), но я протестировал их на работу через MySQL, и я не уверен, как избежать ошибок цикла с SQL.


  • Может ли длительное время загрузки быть связано с наличием dbConnect / dbDisconnect в каждой отдельной функции? Должен ли я сделать это только один раз в сценарии (то есть создать новую функцию «подключения», а затем вызвать другие функции здесь)?

  • Это тот факт, что я выполняю многократные и длинные запросы? Если это так, было бы лучше, если бы я разделил каждую «функцию запроса» на отдельные сценарии R, а затем «shell_exec» каждый и позволил бы пользователю выбирать, какие графы отображать (то есть флажки в HTML / PHP, которые допускают выполнение каждого скрипта / графика желательно)?


Благодаря тестированию я знаю, что у меня есть логика, но я могу что-то упустить. Я хотел бы ускорить процесс, чтобы пользователю сайта не приходилось смотреть на экран загрузки вечно, и я действительно мог бы получить некоторые ощутимые результаты.

Извините за длинную просьбу, я ценю любую помощь, которую вы можете оказать! Если вы хотите увидеть веб-страницу или любой мой код, чтобы получить лучшую идею, я могу загрузить это и поделиться.

Спасибо!

РЕДАКТИРОВАТЬ: Следует также отметить, что я использую цикл while (х < 100) для некоторых расчетов; Я знаю, что циклы в R обычно известны как дорогостоящие процессы, но все дело в векторе (я думаю, что это название?) У меня над головой.

0

Решение

Ваши запросы, вероятно, очень требовательны и не могут быть выполнены синхронно. Вместо этого вы можете использовать систему очередей. Когда запрос сделан, он отправляется в очередь. Результаты будут выведены асинхронно, когда сервер будет готов. В то же время вы можете перенаправить своего пользователя на другую страницу, и об использовании можно будет узнать, когда будут доступны результаты.

Вот некоторые предложения:

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]