4.4 KiB
Asynchrone Aufgaben
Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir RabbitMQ oder Redis nutzen.
Installation von RabbitMQ für asynchrone Aufgaben
Voraussetzungen
Du musst RabbitMQ auf deinem Server installiert haben.
Installation
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
apt-get update
apt-get install rabbitmq-server
Konfiguration und Start
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
rabbitmq-server -detached
RabbitMQ stoppen
rabbitmqctl stop
RabbitMQ für wallabag konfigurieren
Bearbeite deine app/config/parameters.yml
-Datei, um die RabbitMQ-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein:
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
RabbitMQ in wallabag aktivieren
In den internen Einstellungen, aktiviere RabbitMQ im Import-Abschnitt mit dem Wert 1.
Starte den RabbitMQ-Consumer
Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren:
# für den Pocket-Import
bin/console rabbitmq:consumer -e=prod import_pocket -w
# für den Readability-Import
bin/console rabbitmq:consumer -e=prod import_readability -w
# für den Instapaper-Import
bin/console rabbitmq:consumer -e=prod import_instapaper -w
# für den wallabag v1-Import
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
# für den wallabag v2-Import
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
# für den Firefox-Import
bin/console rabbitmq:consumer -e=prod import_firefox -w
# für den Chrome-Import
bin/console rabbitmq:consumer -e=prod import_chrome -w
Redis für asynchrone Aufgaben installieren
Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir auch Redis nutzen.
Voraussetzungen
Du musst Redis auf deinem Server installiert haben.
Installation
apt-get install redis-server
Start
Der Server kann bereits nach der Installation laufen, falls nicht, kannst du ihn wie folgt starten:
redis-server
Redis für wallabag konfigurieren
Bearbeite deine app/config/parameters.yml
-Datei, um die Redis-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein:
redis_host: localhost
redis_port: 6379
Redis in wallabag aktivieren
In den internen Einstellungen, aktiviere Redis im Import-Abschnitt mit dem Wert 1.
Starten des Redis-Consumer
Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren:
# für den Pocket-Import
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# für den Readability-Import
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# für den Instapaper-Import
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# für den wallabag v1-Import
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# für den wallabag v2-Import
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# für den Firefox-Import
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
# für den Chrome-Import
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
Wenn du den Import nur für einige Artikel nutzen willst, kannst du die Nummer festlegen (hier: 12) und der Consumer wird nach dem zwölften Artikel aufhören:
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12