= [wiki:DeployerGuide Synchronizacja oraz wysyłanie poczty w tle] = Aby poczta z serwerów IMAP mogła być pobierana automatycznie należy uruchomić na serwerze dodatkowy proces który zapewniał będzie tą synchronizację. Uruchomienie: 1. Zainstalować moduł SQLite (wersja 3) dla PHP (na windows powinno wystarczyć dodanie/odkomentowanie wpisu w php.ini - extension=php_sqlite3.dll) lub {{{ apt-get install php5-sqlite }}} 2. Uprawnienia {{{ cd /home/edokumenty/public_html/apps/backproc chown -R www-data:edokumenty data logs pid chmod -R u+rwX,g+rwXs,o-rwx data logs pid }}} 3. Uruchomienie procesu a. Harmonogram zadań (Windows) {{{ }}} b. crontab (Linux) {{{ */5 * * * * www-data php /home/edokumenty/public_html/apps/backproc/engine.php 2>&1 & }}} 4. w pliku (apps/edokumenty/config.inc) ustawiamy dwie stałe: {{{ define('EMAIL_OUTBOX_ENABLED', TRUE); define('EMAIL_BACKGROUND_SYNC_ENABLED', TRUE); }}} == Weryfikacja == Po pierwsze na liście procesów powinien widnieć uruchomiony proces php. Po drugie proces ten zapisuje swoją aktywność do logów w: /home/edokumenty/public_html/apps/backproc/logs Znajdują się tam 3 logi: {{{ l-debug.log l-info.log l-threading-error.txt }}} Można w nich prześledzić jak odbierane są maile. Jeżeli l-info.log nie jest pusty, znaczy to, że procesy są uruchomione. {{{ l-info.log: [2014-01-12 22:28:05][#13817.t12] received 31468 new messages in 432s [53,824] [2014-01-12 22:28:05][#13817.t12] received 0 new messages in 0s [53,825] format: [data operacji][#{pid}.{id wątku}] {komunikat} [{id konta, email_accounts.acntid},{id folderu, email_folders.emfdid}] }}} == Konfiguracja == Możliwa jest zmiana domyślnych wartości parametrów określających częstotliwość wykonywania poszczególnych operacji. W celu zmiany tych wartości należy ustawić/dodać odpowiednie stałe w pliku public_html/apps/edokumenty/config.inc, a następnie zrestartować sam proces. Maksymalna liczba wątków, jakie mogą zostać uruchomione przez proces główny {{{ define('BG_MAX_THREADS', 14); }}} self::$maxThreads = defined('BG_MAX_THREADS') ? BG_MAX_THREADS : 14; self::$maxThreads2 = self::$maxThreads - 2; // reserve at least 2 threads for sending self::$maxThreads3 = self::$maxThreads2 - 2; // reserve at least 2 threads for receiving from INBOX self::$maxTasksInThread = defined('BG_MAX_TASKS_PER_THREAD') ? BG_MAX_TASKS_PER_THREAD : 200; self::$hiFoldersRecentSyncInterval = defined('EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL') ? EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL : 600; self::$hiFoldersRecentSyncIntervalNoLog = defined('EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL_NL') ? EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL_NL : 1800; self::$hiFoldersFullSyncInterval = defined('EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL') ? EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL : 3600; self::$hiFoldersFullSyncIntervalNoLog = defined('EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL_NL') ? EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL_NL : 4800; self::$loFoldersSyncStart = defined('EMAIL_BG_LO_FOLDERS_SYNC_START') ? EMAIL_BG_LO_FOLDERS_SYNC_START : '20:00'; if(!preg_match('/^([01][0-9])|(2[0-3]):[0-5][0-9]$/', self::$loFoldersSyncStart)) { self::$loFoldersSyncStart = '20:00'; } }}}