Jump to content

code.php reload no servera puses.


sharps.lv
 Share

Recommended Posts

Varbūt nekorekti definēju jautājumu, bet kā šo realizēt?

Visur kur meklēju ir vien tikai šadi vai js lapas reloads no browsera puses.

 

<meta http-equiv="refresh" content = "5" charset=utf-8">

 

Tas nav tas ko īsti man vajag. Vajag lai code.php serverī reloadotos.

Edited by sharps.lv
Link to comment
Share on other sites

Sekojoši code.php ar autoreload apvaicā TCP tīkla ierīces ievāc datus un iedzen tos mySQL ar noteiktu intervālu. Tik tālu tas strādā. Šo vajag no servera puses, lai tas notiktu 24/7. Vai tikai PHP syntakšos nebija iespēja to ielikt sistēmas servisos? Web serveris apache.

 

 

Vai ajax to dara?

Izskatās ka dara, bet tad jātur browseris vaļā?

 

 

crone cik skatos līdz 60x stundā. vajag biežāk.

Edited by sharps.lv
Link to comment
Share on other sites

5 minutes ago, versatile said:

Cik biežāk? Reizi minūtē ir par retu? Tad jāraksta kaut kāds aģents, kas to dara - shell skripts vai lokāla proga.

reizi 5ās sekundēs (dažādiem TCP punktiem dažāds nolasīšanas intervāls). Retos pētnieciskos nolūkos 1s.

Link to comment
Share on other sites

reko ai ieteica:

 

Lai realizētu nepārtrauktu datu apsekošanu un to ievadīšanu MySQL datubāzē no PHP skripta, kas komunicē ar TCP tīkla ierīcēm, no servera puses un darbojas 24/7, ir vairākas pieejas, bet katrai ir savi ierobežojumi un specifiski izmantošanas scenāriji. Šeit ir pārskats par jūsu iespējām, ņemot vērā minētās prasības un ierobežojumus:

1. Cron Jobs

Parasti, cron jobs tiek izmantoti regulāru uzdevumu izpildei uz servera. Tomēr, ja jums ir nepieciešamība pēc biežākas izpildes nekā reizi minūtē, standarta cron sintakse šādu izpildes biežumu nepiedāvā tieši. Jūs varētu apsvērt alternatīvas, piemēram, izveidot cron job, kas palaiž skriptu, kurš ietver ciklu ar sleep() funkciju īsākam intervālam. Piemēram, skripts varētu izpildīties katru minūti, bet iekšējais cikls ar sleep() funkciju varētu veikt darbību katru sekundi vai vēl biežāk. Tomēr, šāda pieeja var nebūt efektīva resursu izmantošanas ziņā.

2. PHP Skripts kā Sistēmas Serviss

Izpildīt PHP skriptu kā fona servisu (daemon) var būt iespējams, izmantojot piemērotu pakotni vai skriptu, kas ir speciāli veidots, lai darbotos ilgstoši. PHP nav ļoti plaši izmantots šādiem mērķiem salīdzinājumā ar citām tehnoloģijām, piemēram, Node.js vai Python, bet ir iespējams izveidot PHP skriptu, kas darbojas kā serviss. Jums varētu būt nepieciešams izmantot papildu rīkus vai skriptus, lai palaistu un pārvaldītu PHP procesu kā daemons.

3. Izmantošana ar Supervisord

Supervisord ir rīks, kas ļauj pārvaldīt procesus uz Linux sistēmām. To var konfigurēt, lai palaistu jūsu PHP skriptu kā servisu, kas pastāvīgi darbojas fonā. Supervisord nodrošinās, ka jūsu skripts tiek atsākts gadījumā, ja tas kādu iemeslu dēļ beidz darbību. Tas ir labāk piemērots ilgstošu procesu vadībai nekā standarta cron jobs vai manuāla skriptu restartēšana.

4. AJAX un Browseris

Kā jūs minējāt, AJAX pieeja prasa, lai pārlūkprogramma būtu atvērta, lai veiktu regulārus pieprasījumus uz serveri. Šī pieeja nav piemērota 24/7 datu apsekošanai no servera puses, jo tā ir atkarīga no klienta puses pārlūkprogrammas.

Secinājums

Lai integrētu PHP skriptu kā daļu no sistēmas servisiem un nodrošinātu tā nepārtrauktu izpildi ar vēlamo intervālu, jums, iespējams, būs jāapsver Supervisord vai līdzīgu rīku izmantošana, lai palaistu un uzturētu PHP procesu. Tā ir efektīva pieeja, lai nodrošinātu, ka jūsu skripts darbojas nepārtraukti un ir piemērota situācijās, kad nepieciešama augsta izpildes biežuma frekvence.

Link to comment
Share on other sites

Usins paldies es jau AI paspēju uzjautāt. AJAX šķiet interesants risinājums, bet browseris vajadzīgs. Viss tas pasākums uz zema patēriņa mikroPC bez nekādiem smagnējiem browseriem. Ievāc datus no ierīcēm un uzmet tos uz mySQL. Daļā gadījumu pietiktu reizi minūtē, bet ir nepieciešamība arī 1s.

Link to comment
Share on other sites

Un kas par serveri? Linux?

Tak uztaisi systemd servisu kā taimeri un lai tas palaiž tavu skriptu kaut reizi milisekundē.

 

https://opensource.com/article/20/7/systemd-timers

https://www.freedesktop.org/software/systemd/man/latest/systemd.timer.html

https://wiki.archlinux.org/title/systemd/Timers

 

 

pirms 1 stundas , versatile teica:

Nu tad palaid shell skriptu, kam ciklā ielikts sleep.

Un tad scripts nokaras un nekas vairs neiet.

Edited by AndrisBB
Link to comment
Share on other sites

Windows serveris.

Jā skripta apstāšanās galīgi neder. Jau patestēju un tas notika burtiski pāris stundas pēc palaišanās. To domu atmetu.

Edited by sharps.lv
Link to comment
Share on other sites

Būs daži taski jāsadefinē :D 12 minūtē, 720 stundā...

image.thumb.png.2470d30ff8d9cb615384bee92ad4011c.png

 

Lai gan...

Citēt

You could create those 59 triggers manually using the GUI. However, a much quicker way to create so many triggers is to create a task with one or two triggers, export it to a text file, duplicate the according lines, change the start offsets accordingly, and then re-import the file

 

Edited by versatile
Link to comment
Share on other sites

Un pat ja izmanto tik absurdu metodi kā brauzeri, lai izsauktu php skriptu, tad kapēc vienkārši neizmantot kautkādu curl ko palaiž ik pa 5 sekundēm? Priekškam tur brauzeri?

Varēsi laist uz sava mini-datora. Atrodi tik Windows ekvivalentu.

 

watch -n 5 curl http://<tava php addrese>

 

 

 

Edited by AndrisBB
Link to comment
Share on other sites

Man šķiet, ka problēma ir vairāk arhitekturāla un vajadzētu sadalīt PHP skriptu vairākās daļās.
Pirmā puse regulāri ievāc datus un saglabā datubāzē/ģenerē statisku HTML. To būtu prātīgi darbināt caur php-cli ar kaut vai to pašu Task Scheduler vai powershell kolhozu ar bezgalīgu ciklu un Start-Sleep.

 

Otra puse ielasa datus no datubāzes un attēlo tos/servē statisko HTML. Šādā veidā var iztikt bez JS vispār, pietiek ar šo.

 

Rezultātā arī nebūs pārāk bieži un lieki jātramda caur TCP pārējās ierīces pie katras ielādes.

 

Edited by pauls
Link to comment
Share on other sites

Vai vispār HTML/JS lapa browserī saņem tikai notifikāciju (kad parādās kautkas jauns) ar jaunajiem datiem un pievieno esošajiem. Priekškam refrešot un prasīt serverim?

Un ko dara ja atver to pašu lapu 2 browseros? abas refreho un ievāc datus un liek datubāzē?

Edited by AndrisBB
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...