]>
Commit | Line | Data |
---|---|---|
1 | Tâches asynchrones | |
2 | ================== | |
3 | ||
4 | Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser RabbitMQ ou Redis. | |
5 | ||
6 | Installer RabbitMQ pour des tâches asynchrones | |
7 | ---------------------------------------------- | |
8 | ||
9 | Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser RabbitMQ. | |
10 | ||
11 | Pré-requis | |
12 | ^^^^^^^^^^ | |
13 | ||
14 | Vous devez installer RabbitMQ sur votre serveur. | |
15 | ||
16 | Installation | |
17 | ^^^^^^^^^^^^ | |
18 | ||
19 | .. code:: bash | |
20 | ||
21 | wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc | |
22 | apt-key add rabbitmq-signing-key-public.asc | |
23 | apt-get update | |
24 | apt-get install rabbitmq-server | |
25 | ||
26 | Configuration et démarrage | |
27 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
28 | ||
29 | .. code:: bash | |
30 | ||
31 | rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest) | |
32 | rabbitmq-server -detached | |
33 | ||
34 | Arrêter RabbitMQ | |
35 | ^^^^^^^^^^^^^^^^ | |
36 | ||
37 | .. code:: bash | |
38 | ||
39 | rabbitmqctl stop | |
40 | ||
41 | Configurer RabbitMQ dans wallabag | |
42 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
43 | ||
44 | Modifiez votre fichier ``app/config/parameters.yml`` pour éditer la configuration RabbitMQ. Celle par défaut devrait convenir : | |
45 | ||
46 | .. code:: yaml | |
47 | ||
48 | rabbitmq_host: localhost | |
49 | rabbitmq_port: 5672 | |
50 | rabbitmq_user: guest | |
51 | rabbitmq_password: guest | |
52 | rabbitmq_prefetch_count: 10 # lire http://www.rabbitmq.com/consumer-prefetch.html | |
53 | ||
54 | Activer RabbitMQ dans wallabag | |
55 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
56 | ||
57 | Dans les paramètres internes, section **Import**, activez RabbitMQ (avec la valeur 1). | |
58 | ||
59 | Démarrer les clients RabbitMQ | |
60 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
61 | ||
62 | En fonction du service dont vous souhaitez importer vos données, vous devez activer un (ou plusieurs si vous souhaitez en supporter plusieurs) cron job : | |
63 | ||
64 | .. code:: bash | |
65 | ||
66 | # for Pocket import | |
67 | bin/console rabbitmq:consumer -e=prod import_pocket -w | |
68 | ||
69 | # for Readability import | |
70 | bin/console rabbitmq:consumer -e=prod import_readability -w | |
71 | ||
72 | # for Instapaper import | |
73 | bin/console rabbitmq:consumer -e=prod import_instapaper -w | |
74 | ||
75 | # for wallabag v1 import | |
76 | bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w | |
77 | ||
78 | # for wallabag v2 import | |
79 | bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w | |
80 | ||
81 | # for Firefox import | |
82 | bin/console rabbitmq:consumer -e=prod import_firefox -w | |
83 | ||
84 | # for Chrome import | |
85 | bin/console rabbitmq:consumer -e=prod import_chrome -w | |
86 | ||
87 | Installer Redis pour des tâches asynchrones | |
88 | ------------------------------------------- | |
89 | ||
90 | Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser Redis. | |
91 | ||
92 | Pré-requis | |
93 | ^^^^^^^^^^ | |
94 | ||
95 | Vous devez installer Redis sur votre serveur. | |
96 | ||
97 | Installation | |
98 | ^^^^^^^^^^^^ | |
99 | ||
100 | .. code:: bash | |
101 | ||
102 | apt-get install redis-server | |
103 | ||
104 | Démarrage | |
105 | ^^^^^^^^^ | |
106 | ||
107 | Le serveur devrait déjà être démarré après l'installation. Si ce n'est pas le cas, vous pouvez le démarrer ainsi : | |
108 | ||
109 | .. code:: bash | |
110 | ||
111 | redis-server | |
112 | ||
113 | Configurer Redis dans wallabag | |
114 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
115 | ||
116 | Modifiez votre fichier ``app/config/parameters.yml`` pour éditer la configuration Redis. Celle par défaut devrait convenir : | |
117 | ||
118 | .. code:: yaml | |
119 | ||
120 | redis_host: localhost | |
121 | redis_port: 6379 | |
122 | ||
123 | Activer Redis dans wallabag | |
124 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
125 | ||
126 | Dans les paramètres internes, section **Import**, activez Redis (avec la valeur 1). | |
127 | ||
128 | Démarrer les clients Redis | |
129 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
130 | ||
131 | En fonction du service dont vous souhaitez importer vos données, vous devez activer un (ou plusieurs si vous souhaitez en supporter plusieurs) cron job : | |
132 | ||
133 | .. code:: bash | |
134 | ||
135 | # for Pocket import | |
136 | bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log | |
137 | ||
138 | # for Readability import | |
139 | bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log | |
140 | ||
141 | # for Instapaper import | |
142 | bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log | |
143 | ||
144 | # for wallabag v1 import | |
145 | bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log | |
146 | ||
147 | # for wallabag v2 import | |
148 | bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log | |
149 | ||
150 | # for Firefox import | |
151 | bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log | |
152 | ||
153 | # for Chrome import | |
154 | bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log | |
155 | ||
156 | Si vous souhaitez démarrer l'import pour quelques messages uniquement, vous pouvez spécifier cette valeur en paramètre (ici 12) et le client va s'arrêter après le 12ème message : | |
157 | ||
158 | .. code:: bash | |
159 | ||
160 | bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12 |