bazy danych

dana baza jest bazą danych

Kolejkowanie zadań - cron, postgresql, aplikacja webowa

Sytuacja: Jest skrypt odpalany regularnie z crona. Skrypt robi "coś", dla utrudnienia powiedzmy, że w kilku rodzajach, a wyniki wrzuca do bazy danych (w tym przypadku: postgresql'a). Dane z bazy są prezentowane w aplikacji webowej. Skrypt działa dość długo, powiedzmy, że około godziny. Jednocześnie powinna działać tylko jedna instancja, ale ponieważ jest kilka rodzajów "czegoś", to w zależności od rodzaju, zadanie musi być uruchamiane z różnym interwałem, może być też jednorazowe.

Problem: Skrypt może być wywoływany "według planu" - regularnie, albo "on demand" - użytkownik aplikacji stwierdza, że skrypt ma wykonać "teraz zaraz" jakiś rodzaj operacji. Jak więc zarządzać momentem wywołania skryptu z crona i aplikacji jednocześnie?

postgresql: usuwanie elementów z arraya

PostgreSQL ma rozbudowany system typów, wśród których całkiem przydatną strukturą jest typ tablicowy (array). Niestety, funkcjonalność związana z tym typem jest dość niesymetryczna: jest możliwość tworzenia nowych obiektów tego typu, wyszukiwania, dodawania elementów do istniejących tablic, ale nie ma nigdzie żadnej funkcji ani operatora do usuwania elementów z arraya. Nie ma jednak co rozpaczać, gdyż PostgreSQL pozwala na definiowanie własnych funkcji i operatorów (yaay! thank you, Captain Obvious!), co niniejszym opisuję.

Syndicate content