Setup Queue Workers

Tutorial


Exbita does many jobs in the background, such as sending emails, creating wallets, and others. To keep the job processes running permanently in the background, you should use a process monitor such as Supervisor to ensure that the queue worker does not stop running.

You have to install Supervisor within Server Installation section.

By default, the Exbita uses Redis as a queue driver, but you are free to choose any other drivers (e.g. database, file etc.). Please check more info about available drivers from official Laravel doc at https://laravel.com/docs/6.x/queues

NOTE:supervisor package only works on unix systems, if you use Windows, you have to manually run php /var/www/html/artisan queue:work redis --queue=default,wallets,emails --tries=3 --timeout=90 using command-line interface and keep it running. Replace /var/www/html to the actual path of your project directory. If you use Laragon, you can check procfile feature from its doc.


Setup Supervisor


Supervisor configuration files are typically stored in the /etc/supervisor/conf.d directory.

1. Create a config file inside this directory

sudo nano /etc/lib/supervisor/laravel-worker.conf

2. Paste the following lines and save the file

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --queue=default,wallets,emails --sleep=3 --tries=3 --timeout=180
autostart=true
autorestart=true
user=root
numprocs=8

Please note that user property should be replaced with the server's root user

3. Restart Supervisor to apply new config file changes

sudo supervisorctl reload sudo supervisorctl run laravel-worker:*

4. Verify Supervisor process is running

supervisorctl status


Setup Laravel Scheduler


NOTE:crontab package only works on unix systems, if you use Windows, you have to manually run php /var/www/html/artisan schedule:run using command-line interface and keep it running. Replace /var/www/html to the actual path of your project directory.

Laravel Scheduler used to launch cron jobs such as Market Stats updates, Blockchain Sync, Frontend Assets Compile, Theme Editor etc and they won't work without setting up this service.

1. Open crontab interface using this command crontab -e and write the following line below and save the file.

* * * * * php /var/www/html/artisan schedule:run >> /var/log/crontab

Note: /var/log/crontab path should be writable

Please check Admin Dashboard ->Health Status section after you configured this service to make sure it is up and running.

After you make sure everything is up and running, open .env file and set APP_DEBUG=false, so we disable a debug mode.