Spuštění části aplikace cronem
- weckho
- Člen | 94
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.
- Martin Mates
- Člen | 179
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
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.
- Aurielle
- Člen | 1281
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
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.