aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs/de/developer/asynchronous.rst
blob: 742dd3e5f6c20a4e0dcbeb41adc6dcc4a7fbad24 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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
^^^^^^^^^^^^

.. code:: bash

  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
^^^^^^^^^^^^^^^^^^^^^^^

.. code:: bash

  rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
  rabbitmq-server -detached

RabbitMQ stoppen
^^^^^^^^^^^^^^^^

.. code:: bash

  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:

.. code:: yaml

    rabbitmq_host: localhost
    rabbitmq_port: 5672
    rabbitmq_user: guest
    rabbitmq_password: guest
    rabbitmq_prefetch_count: 10 # lesen http://www.rabbitmq.com/consumer-prefetch.html

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:

.. code:: bash

  # 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
^^^^^^^^^^^^

.. code:: bash

  apt-get install redis-server

Start
^^^^^

Der Server kann bereits nach der Installation laufen, falls nicht, kannst du ihn wie folgt starten:

.. code:: bash

  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:

.. code:: yaml

    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:

.. code:: bash

  # 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 chrome -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:

.. code:: bash

  bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12