2014-10-28 8 views
16

Mam błyszczącą aplikację, która pozwala użytkownikom przesyłać własne dane i wykonywać kilka zadań. W zależności od rozmiaru danych i rodzaju zadań, które chcieliby wykonać, czasami proces ten trwa długo i trwa wiecznie. Chciałbym dodać funkcję "stop", w której użytkownicy mogą kliknąć, a bieżące zadanie zostanie zatrzymane i mogą oni kontynuować inne zadania. Jak mam to zrobić?R shiny: Jak zezwolić użytkownikom na zatrzymanie procesu? I jak zatrzymać aplikację z poziomu zaplecza?

Moje drugie pytanie dotyczy pierwszego. Powiedzmy, że jeden z moich użytkowników aplikacji wdrożył bardzo ciężki proces i mocno zajął mój procesor, ale sam użytkownik nie zainicjował sygnału stop. Chciałbym narzucić polecenie "limitu czasu", aby aplikacja została automatycznie zakończona, powiedzmy po 5 minutach. Jak mogę to ustawić?

Wielkie dzięki i pozdrawiam,

pochmurny

+0

Chciałbym również wiedzieć, jak to zrobić. Zaimplementowałem polecenie systemowe, które robi "pkill foo" na procesie powiązanym z przyciskiem Stop, ale to nie zadziałało: witryna nie odpowiadała ... – 719016

Odpowiedz

1

Chciałbym utworzyć przycisk akcji, która ma „Cancel” etykiety, ale będzie przekierowywać do nowej strony po kliknięciu.

actionButton("button", "Cancel Operation") 

Jeśli chodzi o limit zatrzymania CPU, utworzyłbym timer dla tego przycisku akcji, a po jego kliknięciu uruchomi się timer. Następnie sprawdź, czy upłynęła instrukcja warunkowa (limit czasu), przekieruj do nowej strony.

0

W tej chwili nie wygląda na to, że odpowiedź jest niestety.

https://groups.google.com/forum/#!topic/shiny-discuss/j9-NeG9v5ds

Joe mówi: „Nie jest to możliwe w tej chwili, ale w zeszłym tygodniu bym ci powiedział, nigdy nie będzie to możliwe, a teraz mogę myśleć o sposób, aby możliwie zaimplementować to kiedyś zrobiliśmy nasz następna runda zmian na httpuv. Brak obietnic, a tymczasem nie mogę wymyślić żadnego obejścia. "

W skrócie, nie.

Powiązane problemy