Akeneo is a Product information management system that is a very effective tool for managing Multilingual, multi-currency, and large no. of products in a single or multi-channel environment.
Import and export in Akeneo are done via Jobs. These jobs run in the background and perform import/export/calculation. Process control manages the background process for these jobs.
Without a process control system or any other alternative, jobs will always show Status Starting … and they will never start.
A process control system like a supervisor is the solution for this.
Akeneo Company ? Find out More
Process control with supervisor
The supervisor is the most commonly used and recommended process control for Akeneo.
How to setup?
- Install supervisor by running the commands
apt update apt install supervisor
2. Setup supervisor configuration by editing file /etc/supervisor/conf.d/conf.conf by running the command
sudo nano /etc/supervisor/conf.d/conf.conf
3.Then Insert the following data in the file and save
For Akeeno <= 5.x
[program:akeneo_queue_daemon] command=/path/to/php /path/to/your/pim/bin/console akeneo:batch:job-queue-consumer-daemon --env=prod autostart=true autorestart=true stderr_logfile=/var/log/akeneo_daemon.err.log stdout_logfile=/var/log/akeneo_daemon.out.log user=my_user stopasgroup=true
For Akeneo >= 6.x
[program:akeneo_queue_daemon] command=/path/to/php /path/to/your/pim/bin/console messenger:consume ui_job import_export_job data_maintenance_job --env=prod -vv autostart=true autorestart=true stderr_logfile=/var/log/akeneo_daemon.err.log stdout_logfile=/var/log/akeneo_daemon.out.log user=my_user stopasgroup=true
- You must create stderr_logfile (akeneo_daemon.err.log) and stdout_logfile (akeneo_daemon.out.log) at mentioned path.
- Modify my_user with the username of the user that runs PHP fpm
Now run commands
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start akeneo_queue_daemon
After that jobs will get the start.
Process Control with Monit
Monit is another process control system. Monit is the possible replacement of supervisor. It is a common choice with docker. It has some interesting features like manage boot order, dependencies, max retry count, timeout etc other than obvious process monitoring.
How to setup? (for: ubuntu, debian, mint)
- Install monit by running the command
sudo apt-get install monit
- Setup monit configurations by editing file /etc/monit/monitrc by running the command.
sudo nano /etc/monit/monitrc
3.Set up the access server, username, password etc
set httpd port 2812 and use address localhost # only accept connection from localhost allow localhost # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit' allow @monit # allow users of group 'monit' to connect (rw) allow @users readonly # allow users of group 'users' to connect readonly
4.Add akeneo daemon in config by editing file /etc/monit/conf.d/akeneo_queue_daemon
For Akeneo <= 5.x
check process akeneo_queue_daemon with pidfile /var/run/akeneo_queue_daemon.pid start program = “/path/to/php /path/to/your/pim/bin/console akeneo:batch:job-queue-consumer-daemon --env=prod”
For Akeneo >= 6.x
check process akeneo_queue_daemon with pidfile /var/run/akeneo_queue_daemon.pid start program = “/path/to/php /path/to/your/pim/bin/console messenger:consume ui_job import_export_job data_maintenance_job --env=prod -vv”
The user may also use other process controls system like systemd.
But above-listed process control systems are popular ones and a supervisor is generally used in Akeneo.