2013-08-23 16 views
24

Wiele źródła twierdzą ActiveScaffold nie jest bezpieczeństwo wątków:ActiveScaffold nitki zabezpieczające

od tych wnoszę zmian konfiguracyjnych regulator poziomu i zezwolenia nie są thread-safe . Czy bezpiecznie jest rozważyć zastosowanie wątku bezpieczne, jeśli nie używa tych składników ActiveScaffold? Czy są jakieś inne funkcje w ActiveScaft, które nie są bezpieczne dla wątków?

Odpowiedz

10

Niestety, nie ma zbyt wiele oficjalnej dokumentacji w tej sprawie, jednak istnieją dwa przydatne cytaty od deweloperów, które mogą ci w tym pomóc. Po pierwsze, in 2010, here on this thread programista stwierdził:

W kontrolerze, używając oznaczonych_rekordów. Zaznaczone rekordy są przechowywane w sesji, , więc można uzyskać do nich dostęp tylko za pomocą kontrolera. Metody modelowania były hackem do pobierają metody modelowania od kontrolera prądu, ale używały zmiennych klasy , które nie są bezpieczne dla wątków.

ActiveScaftold nie jest bezpiecznym ATM, ale naprawię później kod nie będący wątkiem i nie chcę dodawać więcej kodu bez wątków. Jeśli potrzebne są metody modelowania , dodam je przy użyciu zmiennych gwintów:

Wskazuje to na pierwotny zamysł polegający na tym, że nie będzie bezpieczeństwa wątków. Jednak był rozwijany.

Po tym punkcie dyskusja w tej sprawie wydaje się być cicha i nie mogę znaleźć dalszych oficjalnych oświadczeń. Jednak ludzie, którzy komentowali ponowne wersje, powiedzieli, że jedynym problemem związanym z wątkami jest to, że zmiany w pliku active_scaffold_config muszą być umieszczone wewnątrz pewnego rodzaju blokady, aby być bezpiecznym, a reszta systemu powinna być teraz bezpieczna dla wątków.

Uwaga, nie mogę znaleźć oficjalnych dokumentów, które by to udowodniły, opierają się tylko na komentarzach użytkowników, którzy przeczytali kod źródłowy, więc nie gwarantuję, że tak będzie zawsze, ale z uwagi na komentarze mówiąc, że nie zostanie dodany żaden kod bez gwintu, jest to prawdopodobnie bezpieczny zakład.

Wreszcie, uwaga: this thread sugeruje, że podstawa kodu jest obecnie prawie bezpieczna dla wątków i wątki mogą być używane tak długo, jak podejmujesz pewne środki ostrożności i używasz obejść w kilku miejscach.

Przykro mi, że nie mam tutaj bardziej wiarygodnej odpowiedzi, dokumentacja na ten temat jest skąpa i przeczytanie kodu jest trudne, aby być pewnym w każdym razie, ale jest to najbliższe pewności, którą mogę uzyskać (wygląda na to, że ludzie mieli powodzenie z użyciem wątków w produkcji przynajmniej).

+1

Dziękuję za odpowiedź i gratuluję otrzymania nagrody :) –

Powiązane problemy