Aktywne Wpisy
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Skopiuj link
Skopiuj linkTa treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Wykop.pl
Podróże
Gospodarka
Ukraina
Technologia
Motoryzacja
Sport
Rozrywka
Informacje
Ciekawostki
Wiem, że istnieje coś takiego jak -at (https://packages.debian.org/wheezy/at) co pozwala na wykonanie jakiegoś pliku o określonej godzinie. Tak więc jak połączyć te dwie rzeczy, czy np wykorzystać tylko jedną z nich do wykonania skryptu?
Na razie przedstawiam sobie, że mógłbym stworzyć plik, gdzie zapisywałbym dane, że taki i taki użytkownik dodał ogłoszenie o takiej godzinie i za 30 dni ogłoszenie musi być usunięte, a następnie cronem co minutę sprawdzać plik czy o tej porze musi wykonać się ten skrypt. Ewentualnie w PHP napisać kod, który będzie dodawał jakieś zadanie na jakiś termin przy pomocy pakietu -at. Niestety nie wiem czy moje myślenie jest prawidłowe i może ktoś wskaże mi drogę, która pomogłaby mi rozwiązać ten problem?
#php #linux #cron #webdev
Komentarz usunięty przez autora
A jesli ma byc co do minuty to przy publikacji ustawiaj expiry date i przy selekcie sprawdzaj expiry date vs sysdate czy tam now.
od czasu do czas z crona albo z eventu archiwrchiwizuj i tyle.
@msq: Dziękuję. Poczytam o tych eventach.
@mariecziek: No to sprawdzanie co kilkanascie minut i tak wystarczy. Maile na darmowe serwery potrafia dochodzic z kilkunastominutowym opoznieniem, wiec pare minut roznicy to nei bedzie konec swiata.
Poza tym jesli bedziesz mial tego duzo to i tak bedziesz musial te maile czy archiwizacje kolejkowac....
widocznyOd
widocznyDo
i wyszkujujesz te ogłoszenia które są między tymi polami? masz precyzję co do sekundy
Czyli Tobie chodzi o to, by było 30 dni od pierwszej/ostatniej odsłony?
Dlatego interesuje mnie jak mam właśnie zrobić aż tak dokładne wykonaniu skryptu.
Z cron już zrobiłem usuwanie wszystkich plików starszych niż 2 dni (przy okazji testując skrypt usunąłem sobie wszystkie pliki z pulpitu), więc mniej
Komentarz usunięty przez autora
1. Zakończyć aukcję.
2. Zablokować możliwość stawiania stawek.
3. Wysłać powiadomienie do sprzedawcy i ewentualnie kupującego z informacją czy produkt został kupiony czy nie.
Na razie jeszcze nie ustaliłem czy ma być wysłany email czy będzie to się odbywało w systemie powiadomień, jak na facebooku.
Te trzy punkty, które napisałeś powyżej rozwiązałbym tak:
1) if(temagiczne30dniktoreniewiemodkadmamliczyc){
zmianastatusuaukcji(idaukcji, 2);
powiadomienie(idaukcji);
}
I teraz tak:
zmianastatusuaukcji ma dwa parametry: pierwszym jest
Cronjob itd, bardzo obciążałoby serwer, bo co minutę musiałoby sprawdzać czy ma wywołać skrypt czy nie, a -at zwyczajnie kolejkowałoby zadania czy coś. Tak samo można byłoby wysyłać maile.
W tabeli z aukcjami dajesz pole created i tam timestamp, a przy funkcji drukującej warunek sprawdzający created z aktualną datą i czasem, jeśli ogłoszenie starsze, wywołanie funkcji zmieniającej status i wysyłanie wiadomości.
To rozwiązanie ma minusy: jeśli to bardzo duży serwis, bezsensowne będzie mielenie wszystkich rekordów (wydajność spadnie jak izabela c. w przejście podziemne)
A jeśli to faktycznie ma być duży, PL+ serwis, załatwisz to ładnie