Dostęp i zapis do pliku przez dwa komputery w jednym czasie.

0

Mam taką ciekawostke.

Jest sobie program który bazuje na zewnętrznym pliku TXT ( umieszczonym gdzieś na serwerze ). Program mają dwie osoby i dodają kolejne kilka wartości które są w jednej linijce tekstu. Klikają zapisz / odczyta informacje i odczytuje plik do jakiegos tempa, dodaje linijke do tego programu i umieszcza z powrotem na serwerze. To jeszcze jakoś zadziała, ale co jak dwie osoby w tym samym czasie to samo zrobią ? Jest jakaś szansa, żeby porównac lub ponumerować linijki w tym pliku, zeby w momecie jednoczesnego zapisu nie zrobił się bałagan ?

Może źle myślę, ale mozna by zrobic tak, że pierwszy komp chce cos zapisać, pobiera sie plik i jednocześnie go kasuje z serwera i zaraz wrzuca z nową wartością, drugi komputer gdy chce cos zapisać - porównuje czy istnieje ten plik, jeśli nie to wywali monit: TRWA ZAPIS - PROSZĘ PONOWIĆ ZA CHWILĘ albo cos w ten deseń ?

Troche zagmatwane ale chyba wyjaśniłem o co chodzi :)

0

Jeżeli jest tylko dwóch to bardzo łatwo zrobić synchronizacje poprzez dodatkowy plik.
Jeżeli komputer A chce pisać do pliku to robi to tylko jeżeli nie istnieje pliku: - "A-czeka-na.sygnal" po zakończeniu zapisu tworzy wyżej wspomniany plik.
Jeżeli komputer B chce pisać do pliku to robi to tylko jeżeli istnieje plik: - "A-czeka-na.sygnal" po zakończeniu zapisu kasuje wyżej wspomniany plik.

0

Dwa komputery na pewno, może w przyszłości 3-4... Twoje rozumowanie byłoby ok, gdyby nie to, że ten plik powinien być cały czas na serwerze, ze względu na to, że komputery co kilkadziesiat sekund odświeżały by info czy cos w tym pliku sie zmienilo...

usunięcie cytowania całego poprzedniego posta - furious programming

0

Nie.
Komputery w kółko sprawdzają czy istnieje plik: - "A-czeka-na.sygnal".
Jeden działa kiedy plik jest drugi kiedy pliku nie ma.

W przypadku N-komputerów można to zrobić poprzez N dodatkowych plików, które sygnalizują który komputer w tej chwili pastwi się nad plikiem docelowym.
Zastanów się nad zamianą synchronizacji poprzez bazę danych.

0

Nie potrafie operować biegle w bazach danych wiec sie za to nie biore.
Ale z tym porównywaniu pliku będiez chyba nawet lepiej. Tyle ile komputerów tyle plików, ten który akurat cos zapisuje - kasuje swój plik identyfikacyjny, a założenie aby zapisac swoja informacje = wszystkie pliki dostępne na serwerze... :D

usuniecie cytowania całego poprzedniego posta - furious programming

0

Nic nie zrozumiałeś.
Bo zaraz u ciebie wszystkie komputery naraz skasują swoje pliki identyfikacyjne i zaczną naraz działać na pliku docelowym.
Plik identyfikacyjny ma być tylko jeden.
Po zakończeniu swojej pracy komputer kasuje swój plik identyfikacyjny i tworzy plik identyfikacyjny kolejnego komputera.

0

Ale po co ma tworzyć innym pliki ?
Nie skasuja wszyscy naraz swoich plików bo będzie szybkie sprawdzenie, jeśli istnieja wszystkie pliki = masz zielone swiatlo, mozesz usunac plik blokujac innym edycje.

usunięcie cytowania całego poprzedniego posta - furious programming

0

Zgrywasz się czy naprawdę nic nie rozumiesz?
Dobra, jak zrobisz i zobaczysz że działają naraz jak gdyby nigdy nic to pogadamy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1