node server for Laravel queue
Process job on laravel events
Getting started
Install and init module
Create package.json
npm init
Install laravel-queue
npm install --save laravel-queue
After init the application
./artisan init
It ask for laravel project path then ask for command path (relative to laravel project path) then when asked add this to Console/kernel.php
if your commands folder is not standard(e.g app/Console/Commands), dont forget to change namespace of the class
\App\Console\Commands\NodeConfig::class
Import laravel config
./artisan laravel:config
It ask which config to import and show you setting to put to config in Config/laravel.js to automatically import with the same setting
If you need to interact with database (only tested with mysql) you can import model from database add model to import in Config/core.js and run
./artisan make:models
Example laravel event
In Config/app.js add this in job
app: example: "exampleJob"
then run this for create job
./artisan make:job
look at Jobs folder to test job, data is stored in job.data.
Complete documentation will come soon...
why use it
php artisan queue:listen use pooling and use cpu to check if job need to run
node is event-driven and do job when arrive so it use less cpu
to-do
- write test
- write doc
- import from other databases (postgresql,sqlite,...)
Stuff used to make this
Package
package forked and included
- shell for artisan cli
- sequelize-db-export-import for creating sequelize model from mysql database (only javascript, coffee removed)