Queue Management & Consumers¶
Akeneo PIM uses daemons to execute jobs (i.e: imports, exports, etc.) from a queue.
Job daemons are managed by
systemd which allows multiple operations such as:
start/stop/restart a daemon,
enable/disable a daemon,
check the status/see logs of a daemon.
Please note that, while the number of running job consumers is not enforced, it is not recommended to increase it above the server capability. Between 1 and 3 consumers is recommended.
To see how and which commands are available, please refer to Privilege escalation
Configurations of daemons are stored under /home/akeneo/.systemd/pim_job_consumer. The name of the file is the daemon identifier. Make it simple and use only integer numbers.
As of PIM 3.1, each daemon can be dedicated to run certain job(s), hence making sure the jobs will be executed in a timely manner, and that their execution will not interfere with other business operations.
As of PIM 6.0, job queues have been reworked. Previous daemon configuration files are deprecated. During the technological stack upgrade from a PIM 5.0 to PIM 6.0, configuration folder /home/akeneo/.systemd/pim_job_queue will be removed. Please refer to the information below to set up job configuration.
Daemons files can be configured following this documentation.
Once their configuration files are created, you can manipulate these daemons through our “partners_systemctl” alias as you would do with systemctl.
- Create a new daemon which handles all type of jobs:
1# Create a file for the new daemon and keep it empty to handle all jobs 2touch /home/akeneo/.systemd/pim_job_consumer/3.conf 3 4# Start the consumer with its name (configuration filename without extension) 5partners_systemctl pim_job_consumer@3 start 6 7# Enable the consumer to be started automatically at instance boot up 8partners_systemctl pim_job_consumer@3 enable
- Create a new daemon which handles specific jobs:
1# Create a file with specific jobs 2echo -e "data_maintenance_job\nimport_export_job" > /home/akeneo/.systemd/pim_job_consumer/4.conf 3 4cat /home/akeneo/.systemd/pim_job_consumer/4.conf 5data_maintenance_job 6import_export_job 7 8# Start the consumer with its name (configuration filename without extension) 9partners_systemctl pim_job_consumer@4 start 10 11# Enable the consumer to be started automatically at instance boot up 12partners_systemctl pim_job_consumer@4 enable
- Remove an existing daemon (not possible on Akeneo default ones):
1# Stop the consumer with its name (configuration filename without extension) 2partners_systemctl pim_job_consumer@7 stop 3 4# Disable the consumer not to be started automatically at instance boot up 5partners_systemctl pim_job_consumer@7 disable 6 7# Delete its configuration file 8rm /home/akeneo/.systemd/pim_job_consumer/7.conf
- Remove default PIM webhook consumer:
1# Stop the consumer with its name (configuration filename without extension) 2partners_systemctl pim_webhook_consumer stop 3 4# Disable the consumer not to be started automatically at instance boot up 5partners_systemctl pim_webhook_consumer disable
- Manage all daemons at once:
1# Check the status of all daemons 2partners_systemctl pim_job_consumer@* status 3 4# Restart all daemons 5partners_systemctl pim_job_consumer@* restart
While Onboarder requires consumers to run at all times, those are disabled by default since some customers do not use Onboarder.
Learn more about Onboarder and its configuration in the PIM in the dedicated section Akeneo Onboarder.
Similarly to PIM job consumers, here is how you can manipulate Onboarder daemons:
1# Start the consumer 2partners_systemctl pim_onboarder_consumer@1 start 3 4# Enable consumer #1 to be started at instance boot 5partners_systemctl pim_onboarder_consumer@1 enable 6 7# Enable worker #1 to be started at instance boot 8partners_systemctl pim_onboarder_worker@1 enable 9 10# Check the status of the daemon #1 11partners_systemctl pim_onboarder_consumer@1 status 12 13# Stop daemon #1 14partners_systemctl pim_onboarder_consumer@1 stop
Found a typo or a hole in the documentation and feel like contributing?
Join us on Github!