1.1.10 • Published 5 years ago

laravel-queue v1.1.10

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

Codacy Badge Codacy Badge

node server for Laravel queue

NPM

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

<?php

namespace App\Events;

use App\Events\Event;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Queue\SerializesModels;

class EventExample extends Event implements ShouldBroadcastNow
{
    use SerializesModels;
    //public variable send with event
    public $data;
    public $otherData;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($dataToSend)
    {
        $this->data = $dataToSend;
        $this->otherData = 'otherData';
    }

    /**
     * Get the broadcast event name.
     * event name in javascript object notation
     * @return string
     *
     */
    public function broadcastAs()
    {
        return 'app.example';
    }

    /**
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        return [config('broadcasting.channel', 'laravel-channel')];
    }
}

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