laucinieks Posted December 6, 2011 Report Share Posted December 6, 2011 Sveiki, Vai ir kāds alternatīvs cronjobiem? Ir vajadzīgs kaut kas šāds - Pēc formas aizpildīšanas, datubāzē ievadās dati. Scriptam vajadzētu ņemt no datubāzes datus, katru stundu pareizināt tos ar 10 un ievietot citā datubāzē. Tie dati katram useram būs citādāki, un db tabula ir apmēram šāda - **id**user_id**count** ---------------------------- **1**3**300** **2**44**2000** ... Apmēram 3000 useri ,tāpēc ja lieku uz cronjobu, tas iespējams pat nobremzēs serveri, kamēr scripts izies cauri tiem 3000 useriem un ievietos to katru stundu citā tabulā. Tāpēc ceru, ka varēsiet iedot kādu padomu šajā lietā. Ja nenobremzēs protams lietošu cronjobus :). Ar cieņu, L. Quote Link to comment Share on other sites More sharing options...
Kaklz Posted December 6, 2011 Report Share Posted December 6, 2011 Labāk pastāsti ideju, ko tu gribi panākt. Tāda datu stumdīšana ar cron slikti beigsies. Quote Link to comment Share on other sites More sharing options...
laucinieks Posted December 6, 2011 Author Report Share Posted December 6, 2011 (edited) Hmm, nu praktiski ir tā kā teicu tā paša tabula. Ir kaut kāds lauks, apzīmēsim to ar count (nav svarīgi, kas tas ir pašlaik). Tātad datubāzes tabula mums izskatās - **id**user_id**count** Tātad, pieņemsim cilvēks ar user_id aizpilda formu un pie count ieraksta 3, tad automātiski datubāzē ievietojas - **1**4(pieņemsim ka lietotāja id ir 4)**3** Tālāk sākas atskaite, ik pēc 1h, kamēr lietotājs atkal nesamainīs laukā ciparu, 3 tiks sareizināts ar 10 un tiks ievietots otrā datubāzes tabulā ar nosaukumu skaitli **id**user_id**points** Tas izskatīsies apmēram šādi - **1**4**0 + ar katru stundu tiks pievienots 30 klāt (pēc 10 stundām vajadzētu būt 300, protams ja lietotājs to skaitli samainīs uz 2 tad jāskatās, kā mainīsies viss)** Respektīvi, vēlos panākt to, lai cilvēkam nesēžot mājaslapā katru stundu skaitītos klāt punktu skaits. Ceru ka sapratāt domu. Ar cieņu, L. Edited December 6, 2011 by laucinieks Quote Link to comment Share on other sites More sharing options...
nemakuphp Posted December 6, 2011 Report Share Posted December 6, 2011 Pieglabā laiku, kad pēdējoreizi atjaunots un tad, kad lietotājs ienāk lapā, pieskaiti, Quote Link to comment Share on other sites More sharing options...
laucinieks Posted December 6, 2011 Author Report Share Posted December 6, 2011 (edited) Hmm, biju iedomājis, jau par šādu ideju, bet tāda sajūta, ka tas radīs atkal problēmas (Ko dara ja tas lietotājs to stundu piemēram nostaigā pa lapu, tad viņam jāiziet ārā no lapas, un jāielogojas atkal, lai punktu tiktu pieskaitīti, pareizi? Var protams uzlikt, arī pārbaudes kamēr ir ielogojies lai atsevišķi pieskaita, bet nu tas manuprāt radīs sarežģījumus, ja nē, tad taisu šādu variantu augšā.). Jebkurā gadījumā, es vēlos uzzināt pēc iespējas labākas/efektīvākas iespējas kā to izdarīt. Ar cieņu, L. Edited December 6, 2011 by laucinieks Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 6, 2011 Report Share Posted December 6, 2011 > Jebkurā gadījumā, es vēlos uzzināt pēc iespējas labākas/efektīvākas iespējas kā to izdarīt. Tas, ko **nemakuphp** teica. > Ko dara ja tas lietotājs to stundu piemēram nostaigā pa lapu, tad viņam jāiziet ārā no lapas, un jāielogojas atkal, lai punktu tiktu pieskaitīti, pareizi? A? Tev ir metode get_points(). Metode nočeko laiku, kad pēdējo reizi lietotājs ir bijis aktīvs (vai jebkāds cits laika atskaites punkts). Izrēķinot pagājušo laiku ņemot vērā laika atskaites punktu, izrēķinam lietotāja punktu daudzumu. Nekādas n'tās tabulas, kur tiek glabāts, citiem vārdiem sakot, eksprešens (x * 10), nevis dati kā tādi. P.S. Apnicis skaidrot vienu un to pašu saistībā ar cron-jobiem - tjipa to, ko tikko pastāstīju. Varu derēt, ka forumā pēdējā gada laikā ir bijušas **vismaz** desmit diskusijas par šo pašu tēmu. Quote Link to comment Share on other sites More sharing options...
laucinieks Posted December 7, 2011 Author Report Share Posted December 7, 2011 Ok, tad tā arī darīšu, paldies :)! L. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.