]>
Commit | Line | Data |
---|---|---|
2bc5b74c JO |
1 | Asynchrone Aufgaben |
2 | =================== | |
3 | ||
4 | Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir RabbitMQ oder Redis nutzen. | |
5 | ||
6 | Installation von RabbitMQ für asynchrone Aufgaben | |
7 | ------------------------------------------------- | |
8 | ||
9 | Voraussetzungen | |
10 | ^^^^^^^^^^^^^^^ | |
11 | ||
12 | Du musst RabbitMQ auf deinem Server installiert haben. | |
13 | ||
14 | Installation | |
15 | ^^^^^^^^^^^^ | |
16 | ||
17 | .. code:: bash | |
18 | ||
19 | wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc | |
20 | apt-key add rabbitmq-signing-key-public.asc | |
21 | apt-get update | |
22 | apt-get install rabbitmq-server | |
23 | ||
24 | Konfiguration und Start | |
25 | ^^^^^^^^^^^^^^^^^^^^^^^ | |
26 | ||
27 | .. code:: bash | |
28 | ||
29 | rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest) | |
30 | rabbitmq-server -detached | |
31 | ||
32 | RabbitMQ stoppen | |
33 | ^^^^^^^^^^^^^^^^ | |
34 | ||
35 | .. code:: bash | |
36 | ||
37 | rabbitmqctl stop | |
38 | ||
39 | RabbitMQ für wallabag konfigurieren | |
40 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
41 | ||
42 | Bearbeite deine ``app/config/parameters.yml``-Datei, um die RabbitMQ-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein: | |
43 | ||
44 | .. code:: yaml | |
45 | ||
46 | rabbitmq_host: localhost | |
47 | rabbitmq_port: 5672 | |
48 | rabbitmq_user: guest | |
49 | rabbitmq_password: guest | |
50 | ||
51 | RabbitMQ in wallabag aktivieren | |
52 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
53 | ||
54 | In den internen Einstellungen, aktiviere RabbitMQ im Import-Abschnitt mit dem Wert 1. | |
55 | ||
56 | Starte den RabbitMQ-Consumer | |
57 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
58 | ||
59 | Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren: | |
60 | ||
61 | .. code:: bash | |
62 | ||
63 | # für den Pocket-Import | |
64 | bin/console rabbitmq:consumer -e=prod import_pocket -w | |
65 | ||
66 | # für den Readability-Import | |
67 | bin/console rabbitmq:consumer -e=prod import_readability -w | |
68 | ||
69 | # für den Instapaper-Import | |
70 | bin/console rabbitmq:consumer -e=prod import_instapaper -w | |
71 | ||
72 | # für den wallabag v1-Import | |
73 | bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w | |
74 | ||
75 | # für den wallabag v2-Import | |
76 | bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w | |
77 | ||
78 | # für den Firefox-Import | |
79 | bin/console rabbitmq:consumer -e=prod import_firefox -w | |
80 | ||
81 | # für den Chrome-Import | |
82 | bin/console rabbitmq:consumer -e=prod import_chrome -w | |
83 | ||
84 | Redis für asynchrone Aufgaben installieren | |
85 | ------------------------------------------ | |
86 | ||
87 | Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir auch Redis nutzen. | |
88 | ||
89 | Voraussetzungen | |
90 | ^^^^^^^^^^^^^^^ | |
91 | ||
92 | Du musst Redis auf deinem Server installiert haben. | |
93 | ||
94 | Installation | |
95 | ^^^^^^^^^^^^ | |
96 | ||
97 | .. code:: bash | |
98 | ||
99 | apt-get install redis-server | |
100 | ||
101 | Start | |
102 | ^^^^^ | |
103 | ||
104 | Der Server kann bereits nach der Installation laufen, falls nicht, kannst du ihn wie folgt starten: | |
105 | ||
106 | .. code:: bash | |
107 | ||
108 | redis-server | |
109 | ||
110 | ||
111 | Redis für wallabag konfigurieren | |
112 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
113 | ||
114 | Bearbeite deine ``app/config/parameters.yml``-Datei, um die Redis-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein: | |
115 | ||
116 | .. code:: yaml | |
117 | ||
118 | redis_host: localhost | |
119 | redis_port: 6379 | |
120 | ||
121 | Redis in wallabag aktivieren | |
122 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
123 | ||
124 | In den internen Einstellungen, aktiviere Redis im Import-Abschnitt mit dem Wert 1. | |
125 | ||
126 | Starten des Redis-Consumer | |
127 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
128 | ||
129 | Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren: | |
130 | ||
131 | .. code:: bash | |
132 | ||
133 | # für den Pocket-Import | |
134 | bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log | |
135 | ||
136 | # für den Readability-Import | |
137 | bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log | |
138 | ||
139 | # für den Instapaper-Import | |
140 | bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log | |
141 | ||
142 | # für den wallabag v1-Import | |
143 | bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log | |
144 | ||
145 | # für den wallabag v2-Import | |
146 | bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log | |
147 | ||
148 | # für den Firefox-Import | |
149 | bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log | |
150 | ||
151 | # für den Chrome-Import | |
152 | bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log | |
153 | ||
154 | 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: | |
155 | ||
156 | .. code:: bash | |
157 | ||
158 | bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12 |