Spuštění části aplikace cronem

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
weckho
Člen | 94
+
0
-

Ahoj,

potřeboval spouštět pravidelně část aplikace cronem. Jedná se o pár dotazů na DB + odeslání emailů. Rád bych se zeptal, jak by měla tato část aplikace vypadat? Bude potřeba soubor šablony, nebo stačí model + presenter, který bude volat dané funkce z modelu? Nemám vůbec představu, může mi prosím někdo poradit, jak na to?

Díky moc.

blacksun
Člen | 177
+
0
-

A je potřeba na to znásilňovat nette, když by to mohl být jeden jednoduchý soubor o pár řádcích kódu?

Martin Mates
Člen | 179
+
0
-

Já to řeším takhle (pravidelný import aut do autobazaru):

<?php
// absolute filesystem path to the web root
define('WWW_DIR', dirname(__FILE__));

// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/app');

// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . '/libs');


require_once LIBS_DIR . '/Nette/loader.php';

Debug::enable();

Environment::loadConfig();

$loader = new RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR);
$loader->register();

dibi::connect(Environment::getConfig('database'));

// tady už můžeš sekat dotazy



exit();
?>
Jakub Šulák
Člen | 222
+
0
-

Ještě je pak další možnost napsat si do CRONu skript, který jednodušše volá přes curl standardní URL (http://neco.cc/presenter/view/). Dobře se to testuje (skript je možné volat i normálně), navíc lze skript volat kromě pravidelného volání CRONem i na vyžádání uživatele.

Ochrana před nedovoleným voláním lze řešit nějakou formou autentizace.

Ondřej Brejla
Člen | 746
+
0
-

A co využít CliRouter?

Aurielle
Člen | 1281
+
0
-

Jakub Šulák napsal(a):

Ještě je pak další možnost napsat si do CRONu skript, který jednodušše volá přes curl standardní URL (http://neco.cc/presenter/view/). Dobře se to testuje (skript je možné volat i normálně), navíc lze skript volat kromě pravidelného volání CRONem i na vyžádání uživatele.

Ochrana před nedovoleným voláním lze řešit nějakou formou autentizace.

Tak to taky dělám, vlastní soubor používám jen v případě že cron nejde volat přes http.

Jakub Šulák
Člen | 222
+
0
-

Jasně možností je více. U toho příkladu co uvádím je pouze důležité si pohlídat, že CRONové věci nelze spustit přes URL jako útok. Nejlepší podle mě je system závory – cron skript otevře závoru a URL skript ji pak zavře.