![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 20.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sytuacja wygląda tak mam portal internetowy, który umożliwia upload plików, które następnie mają zostać przetworzone przez istniejący program w C znajdujący się gdzieś na serwerze. Program ten musi mieć podany plik i na jego podstawie generuje plik wynikowy, który jest wysyłany do użytkownika.
W jaki sposób wywoływać ten program z poziomu php, jak rozwiązań problem kolejkowania zadań (wybór odpowiedniej kolejności plików do przetworzenia). Nie oczekuje oczywiście gotowego rozwiązania, tylko jakieś wskazówki lub miejsce gdzie mogę znaleźć informacje na interesujący mnie temat. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
napisalbym oddzielny skrypt(program?) ktory bylby odpalony caly czas i czekal na nowe zgloszenia do roboty
do przetrzymywania zadan wykorzystalbym baze(zalatwia problem synchronizacji przy dostepie do zasobow) w momencie gdy skrypt wiedzialby ze sa nowe zadania do przetworzenia, pytalby baze o zadania i wysylal je po kolei do Twojego programu w C(exec) pozostaje tylko problem powiadomienia naszego skryptu ze jest cos do roboty, zeby nie katowal bazy ciaglymi pytaniami o zadania, jesli nie przeszkadza Ci niewielkie opoznienie to skrypt moglby np. co pare sekund pytac baze czy jest cos nowego dla niego, wtedy w ogole nie ma problemu jesli wyjatkowo zalezy Ci na czasie, to wtedy Twoja aplikacja moze odezwac sie do skryptu przez jakis socket, wydaje mi sie ze zwykly phpowy stream tez sie nada - dzieki temu nie tracilbys ani sekundy i Twoj skrypt natychmiast wiedzialby ze pojwilo sie cos do roboty i pytal baze o to co jest w "kolejce" oczywiscie mozna ten problem rozwiazac na wiele roznych sposobow, ale ten wydaje mi sie calkiem ok (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A to nie można użyć w skrypcie funkcji exec by wywołać program z zadanymi parametrami? (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@thek
mozna, ale kolega chcial to kolejkowac (IMG:style_emoticons/default/smile.gif) Ten post edytował yevaud 20.06.2010, 22:02:03 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 2 Dołączył: 30.11.2009 Ostrzeżenie: (10%) ![]() ![]() |
hmm, exec i cron?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@deniol13
cron jest co minute (IMG:style_emoticons/default/winksmiley.jpg) jak mowilem kolega chce kolejkowac |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 20.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wielki dzięki za szybką odpowiedź na nurtujące mnie kwestie. Zadania muszą być kolejkowane bo mają różne priorytety wykonania ( 3 grupy zadań ), rzeczywiście można by jego było przechowywać w tabeli tymczasowej, usuwając po wykonaniu. Po przeczytaniu waszych cennych uwag wydaje mi się że najlepiej rzeczywiście będzie stworzyć skrypt, który uruchomi funkcje w C.
Czy cykliczne uruchamianie skryptu ( co jakiś czas ) może odbywać się tylko za pomocą crona ? I jeszcze jedno pytanko może trochę naiwne ale nie używałem nigdy crona. Powiedzmy że mamy crona ustawionego tak żeby wykonywał skrypt co minute. Skrypt ma jednak do przetworzenia tyle zadań, że wykonuje się powiedzmy 30 minut. Czy cron mimo tego że skrypt coś tam przetwarza, będzie go próbował ponownie odpalać ? Nie wpłynie to na poprawne działanie skryptu ? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Czy cykliczne uruchamianie skryptu ( co jakiś czas ) może odbywać się tylko za pomocą crona ? to najlatwiejszy sposob zeby zalatwic problem (IMG:style_emoticons/default/smile.gif) Powiedzmy że mamy crona ustawionego tak żeby wykonywał skrypt co minute. Skrypt ma jednak do przetworzenia tyle zadań, że wykonuje się powiedzmy 30 minut. Czy cron mimo tego że skrypt coś tam przetwarza, będzie go próbował ponownie odpalać ? Nie wpłynie to na poprawne działanie skryptu ? cron bedzie probowal go odpalac tak czesto jak mu kazesz, nic wiecej go nie obchodzi. Wtedy skrypt powinien wykryc inna uruchomiona instancje i sie wylaczyc. Najlatwiej to osiagnac tworzac jakis plik tymczasowy. tzn. Skrypt sie wlacza, sprawdza czy istnieje plik, jesli tak to konczy prace, jesli nie to go tworzy i bierze sie do roboty, po skonczonej robocie kasuje plik. uzycie try except jest tutaj dobrym pomyslem (IMG:style_emoticons/default/winksmiley.jpg) warto tez w pliku wrzucic pid procesu, skrypt moglby sprawdzac czy proces o tym pid na pewno istnieje - zeby nie bylo sytuacji ze skrypt z jakiegos powodu calkiem padl, a plik zostal i blokuje system |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 20.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dobra czyli na razie chyba wiem co i jak (IMG:style_emoticons/default/winksmiley.jpg) . Reszta wyjdzie w praniu, wtedy pewnie ponownie podpytam tutaj (IMG:style_emoticons/default/winksmiley.jpg) Jeszcze bardzo dziękuję.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 21:39 |