wallabag/docs/en/developer/rabbitmq.rst
2016-10-10 15:38:49 +02:00

1.9 KiB

Install RabbitMQ for asynchronous tasks

In order to launch asynchronous tasks (useful for huge imports for example), we can use RabbitMQ.

Requirements

You need to have RabbitMQ installed on your server.

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

Configuration and launch

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

Stop RabbitMQ

rabbitmqctl stop

Configure RabbitMQ in wallabag

Edit your parameters.yml file to edit RabbitMQ configuration. The default one should be ok:

rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest

Enable RabbitMQ in wallabag

In internal settings, in the Import section, enable RabbitMQ (with the value 1).

Launch RabbitMQ consumer

Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job:

# for Pocket import
bin/console rabbitmq:consumer -e=prod import_pocket -w

# for Readability import
bin/console rabbitmq:consumer -e=prod import_readability -w

# for Instapaper import
bin/console rabbitmq:consumer -e=prod import_instapaper -w

# for wallabag v1 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w

# for wallabag v2 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w

# for Firefox import
bin/console rabbitmq:consumer -e=prod import_firefox -w

# for Chrome import
bin/console rabbitmq:consumer -e=prod import_chrome -w