1

Temat: Cakephp a cron

Hej,

Mam drobny problem z cronem.
Mam postawiony serwis na cakephp 1.2. Chciałem podpiąć pod niego plik cron.php aby móc co godzinkę wysyłać maile do klientów serwisu smile
Niestety nie jest to takie proste aby zgrać crona z cakephp. Może ktoś już to kiedyś robił. Każda pomoc będzie cenna.

Ostatnio edytowany przez mugen (2009-08-05 22:07:47)

2

Odp: Cakephp a cron

Witam,

http://book.cakephp.org/view/846/Runnin … s-cronjobs TAAAADAM wink


Generalnie sprawa jest prosta, musisz utworzyc shell task (http://book.cakephp.org/view/110/Creating-Shells-Tasks) i odpalic go cronem jak kazdy innny plik, z wyjatkiem tego ze odpalasz cake.php i zapodajesz nazwe shell task'a .

proponuje doinstalowac php-cli i pobawic sie z konsoli ... nie bedziesz musial czekac kolenej minuty zeby sie dowiedziec ze znow cos nie tak ;-)

Ostatnio edytowany przez robal77 (2009-08-05 22:24:37)

3

Odp: Cakephp a cron

Wielkie dzięki za szybką odpowiedź.

Zrobiłem tak jak pisałeś, zrobiłem shell testowy taki który zamieniałby w bazie uprawnienia z user na client

shell ścieżka: /app/vendors/shells/mailing.php

plik mailing.php ma postać:

<?php
class MailingShell extends Shell {
   
var uses=array('User');

    function main() {
       App::import('Model', 'User');
     $user=$this->User->findById('53');
$this->data['User']['id']= 53;
$this->data['User']['roles']='client';
$this->User->save($this->data['User']);

    }
}
?>

Nie robiłem żadnego taska do tego shella, wszystko wrzuciłem do maina dla testów.
Mam drobny problem z odpaleniem tego przez crona. Plik cron.php musi się znajdować w głównym katalogu serwera (takie wymagania) i odpalany jest co np. 10 min.
Co dokładnie mam wklepać w kod crona i czy to co wypociłem jest dobrze?:)

4

Odp: Cakephp a cron

A co  ma byc pliku cron.php , bo nie kumam?
To jest jakis dzielony hosting ?

Ostatnio edytowany przez robal77 (2009-08-06 16:29:48)

5

Odp: Cakephp a cron

hosting jest na home.pl a tam wrzuca się plik cron-5min.php który jest odpalany co 5 minut i musi być w katalogu głównym serwera. Niema tam czegoś takiego jak cronjobs tak jak jest w jakimś DirectAdminie.

Oto link do opisu jak to musi być na homie: http://home.pl/dokumentacja/funkcjeserwera/skrypty/cron

Więc trzeba chyba wklepać jakiś kod bezpośrednio do tego pliku i ten kod będzie odpalał shell.

6

Odp: Cakephp a cron

no jak masz badziewny hosting na home.pl to trudno sie dziwic, ze zasetupowanie crona z cakephp to bedzie droga przez meke.

dla mnie sprawa jest prosta - aby zrobic to porzadnie musisz miec dostep do shella i crontaba - czyli - zmien hosting.

pozdrawiam

7

Odp: Cakephp a cron

ale mam dla ciebie taki maly workaround tak btw. - wrzuc w ten plik cron-5min.php jakiegos cURLa ktory wywoluje jakas akcje Twojego kontrolera smile

8

Odp: Cakephp a cron

sprawdz najpierw czy mozesz korzystac na home.pl z funkcji exec() .... czyli

utworz jeden plik :

<?php
exec('/sciezkaDoPhp/php /dev/null /sciezkadoDrugiegoPliku/drugiPlik.php');
?>

w drugim pliku

<?php
echo("Hello World");
?>

i sprobuj odpalic przez przegladarke pierwszy plik, jak zobaczysz "Hello World" ( mam obawy ) to cake.php z odpwiednim argumentem tez odpalisz wink

Ostatnio edytowany przez robal77 (2009-08-07 19:16:44)

9

Odp: Cakephp a cron

Spoko

Już się udało, trochę musiałem porobić na około ale udało się.

Dzięki wielkie za pomoc.