use systemd watchdog
This commit is contained in:
parent
5a52fdca9c
commit
bafe1d5438
|
@ -7,6 +7,7 @@ from pathlib import Path
|
|||
|
||||
import humanize
|
||||
import yaml
|
||||
from sdnotify import SystemdNotifier
|
||||
|
||||
from iarchiver.database import EmailDatabase
|
||||
from iarchiver.email import unix_timestamp_since_to_imap_timestamp
|
||||
|
@ -33,6 +34,7 @@ def main(args):
|
|||
attachments_dir = Path(config['attachments_path'])
|
||||
attachments_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
notifier = SystemdNotifier()
|
||||
database = EmailDatabase(Path(config['database_path']))
|
||||
mail = MailConnection(config['server'], config['username'], config['password'], attachments_dir, save_inline_attachments=save_inline_attachments)
|
||||
mail.load_folders()
|
||||
|
@ -43,12 +45,12 @@ def main(args):
|
|||
num_folders_to_sync = len(mail.folder_structure)
|
||||
logger.info(f'Syncing {num_folders_to_sync} folders...')
|
||||
|
||||
last_refresh_imap_date = None
|
||||
if args.full:
|
||||
last_refresh = None
|
||||
logger.info('Performing full sync...')
|
||||
else:
|
||||
last_refresh = database.have_we_done_a_full_sync_at_all()
|
||||
last_refresh_imap_date = None
|
||||
if last_refresh:
|
||||
last_refresh_imap_date = unix_timestamp_since_to_imap_timestamp(last_refresh)
|
||||
logger.info(f'Syncing emails received after {last_refresh_imap_date}')
|
||||
|
@ -76,6 +78,7 @@ def main(args):
|
|||
new_emails += 1
|
||||
if len(attachments):
|
||||
new_attachments += 1
|
||||
notifier.notify("WATCHDOG=1")
|
||||
|
||||
elapsed = datetime.now() - sync_start_time
|
||||
database.finish_sync('refresh' if not did_full_sync else 'full', new_emails, new_attachments, int(elapsed.total_seconds()))
|
||||
|
|
|
@ -4,4 +4,5 @@ humanize==4.9.0
|
|||
mmh3==4.1.0
|
||||
flask==3.0.2
|
||||
python-magic==0.4.27
|
||||
flask_httpauth==4.8.0
|
||||
flask_httpauth==4.8.0
|
||||
sdnotify==0.3.2
|
|
@ -8,7 +8,8 @@ User=emailsync
|
|||
Group=emailsync
|
||||
ExecStart=/srv/email/imap-archiver/venv/bin/python3 /srv/email/imap-archiver/run.py --config /srv/email/imap-archiver/config.yml
|
||||
SyslogIdentifier=imap-archiver
|
||||
Restart=on-failure
|
||||
Restart=always
|
||||
WatchdogSec=60
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -9,7 +9,7 @@ Group=emailsync
|
|||
EnvironmentFile=/etc/secrets/imapviewer
|
||||
ExecStart=/srv/email/imap-archiver/venv/bin/python3 /srv/email/imap-archiver/server.py
|
||||
SyslogIdentifier=imap-viewer
|
||||
Restart=on-failure
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
Loading…
Reference in New Issue