Version 19 (modified by WN, 11 years ago)

--

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
  1. 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
    
  2. Uruchomienie procesu
    1. Harmonogram zadań (Windows)
    2. crontab (Linux)
      */5 * * * * www-data php /home/edokumenty/public_html/apps/backproc/engine.php 2>&1 &
      
  3. 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.

Poniżej znajdują się definicje stałych konfiguracyjnych z domyślnymi wartościami.

Maksymalna liczba wątków, jakie mogą zostać uruchomione przez proces główny

define('BG_MAX_THREADS', 14);

Maksymalna liczba zadań skolejkowana w wątku

define('BG_MAX_TASKS_PER_THREAD', 200);

Interwał dla synchronizacji nowych wiadomości dla folderu specjalnego Odebrane oraz folderów oznaczonych wysokim priorytetem dla zalogowanych użytkowników

define('EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL', 600);

Interwał dla synchronizacji nowych wiadomości dla folderu specjalnego Odebrane oraz folderów oznaczonych wysokim priorytetem dla niezalogowanych użytkowników

define('EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL_NL', 1800);

Interwał dla pełnej synchronizacji dla folderu specjalnego Odebrane oraz folderów oznaczonych wysokim priorytetem dla zalogowanych użytkowników

define('EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL', 3600);

Interwał dla pełnej synchronizacji dla folderu specjalnego Odebrane oraz folderów oznaczonych wysokim priorytetem dla niezalogowanych użytkowników

define('EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL_NL', 4800);

Czas rozpoczęcia (w formacie HH:MM) codziennej pełnej synchronizacji folderów oznaczonych niskim priorytetem

define('EMAIL_BG_LO_FOLDERS_SYNC_START', '20:00');

Wysyłanie wiadomości oczekujących w folderze Do wysłania wykonywane jest bez dodatkowego czasu oczekiwania. Ponadto zadania wysyłania wiadomości mogą dysponować większą liczbą wątków niż zadania związane z synchronizacją. Fizyczny czas oczekiwania na wysłanie wiadomości zależy więc jedynie od obciążenia serwera oraz liczby zadań aktualnie przetwarzanych przez proces. Zwykle czas ten waha się od kilku sekund do 2-3 minut.

Załączniki