Cykliczne wykonywanie określonej funkcji 24h/dobe

0

Witam,

napisałem w Javie program, który co 5 minut pobiera mi do Stringa kod HTML pewnej strony. Na stronie jest tabela, w której znajdują się interesujące mnie dane. Ja sobie te dane wyłuskuję ze znaczników i i zapisuje do bazy danych.

Problem w tym, że potrzebuję aby program działał 24 godziny na dobę, co wymaga bez przerwy włączonego komputera i dostępu do internetu. Niestety nie mogę sobie na coś takiego pozwolić. Pomyślałem że trzeba będzie do tego użyć jakiegoś zewnętrznego serwera. Myślałem o przepisaniu tego do PHP, ale z tego co się orientuję to potrzeba aby ktoś stronę odwiedzał, żeby skrypt PHP się odpalał. Nie da się chyba zrobić tego w nieskończonej pętli.

Zależy mi po prostu na czymś co będzie działało bez przerwy na jakimś serwerze i zbierało mi dane z tej strony.
Macie może jakieś pomysły co do technologi których musiałbym tu użyć?

0

Praktycznie każdy hosting da Ci:
CRON + php + baza my sql

0

Java jest ok, nie bardzo rozumiem czemu niby nie. Potrzebujesz zwykłego serwera shell do tego albo VPSa, dodajesz ten swój program do crona i już.

0

A istnieje jakiś darmowy hosting, który miałby dostęp do crona i transfer bez limitu? Może być nawet cały zawalony reklamami.

Mam jeszcze pytanie jeśli chodzi o PHP. Czy istnieje jakiś limit czasu na wykonanie skryptu? Sprawa wygląda tak, że mój program tak naprawdę wczytuje kod HTML kilkunastu stron po kolei. W rezultacie wykonanie wszystkich operacji trwa około 2 minut. Czy w takim wypadku zbyt długi skrypt nie zostałby przerwany? A może lepiej napisać skrypt dla każdej strony osobno? Tylko jak to wygląda w przypadku użycia crona? Czy da się ustawić go tak by wykonywał skrypty jeden po drugim, z praktycznie zerowym odstępem czasu?

0
  1. Crona masz dostępnego np. na tym hostingu: http://www.000webhost.com/. Problemem jest transfer. Ewentualnie pozostaje użyć zewnętrznego serwisu, np. https://cron-job.org/en/
    2.Istnieje limit wykonania skryptu w PHP. Z cronem nie powinno być problemów, gdy użyjesz w swoim skrypcie: set_time_limit
    http://php.net/manual/en/function.set-time-limit.php

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