--- - name: Setup and manage Laravel queue supervisor hosts: mylocalhost become: true vars: deploy_path: /home/fy/work/owl-admin app_user: www app_group: www tasks: - name: Install supervisor apt: name: supervisor state: present update_cache: yes - name: Create Laravel queue supervisor config copy: dest: /etc/supervisor/conf.d/laravel-queue.conf content: | [program:laravel-queue] process_name=%(program_name)s_%(process_num)02d command=php {{ deploy_path }}/artisan queue:work --sleep=2 --tries=2 --max-time=3600 autostart=true autorestart=true stopasgroup=true killasgroup=true user={{ app_user }} numprocs=2 redirect_stderr=true stdout_logfile={{ deploy_path }}/storage/logs/worker.log stopwaitsecs=3600 startretries=3 mode: "0644" - name: Ensure supervisor service is running systemd: name: supervisor state: started enabled: true - name: Create log directory file: path: "{{ deploy_path }}/storage/logs" state: directory owner: "{{ app_user }}" group: "{{ app_group }}" mode: "0755" - name: Create worker log file file: path: "{{ deploy_path }}/storage/logs/worker.log" state: touch owner: "{{ app_user }}" group: "{{ app_group }}" mode: "0644" - name: Reload supervisor configuration shell: supervisorctl reread && supervisorctl update - name: Start Laravel queue workers shell: supervisorctl start laravel-queue:* - name: Check supervisor status shell: supervisorctl status register: supervisor_status changed_when: false - name: Display supervisor status debug: var: supervisor_status.stdout_lines