Asked thg 4 23, 2018 8:26 SA 171 0 1
  • 171 0 1
0

Lỗi về event - listener.

Share
  • 171 0 1

Xin chào mọi người, hiện tại em đang làm một dự án, có sử dụng event - listener của laravel 5.2. Code event của em k sử dụng Shouldqueue hay broadcast. Cụ thể event em như thế này:

namespace App\Events;

use App\Events\Event;
use Illuminate\Queue\SerializesModels;

class CreateItem extends Event
{
    use SerializesModels;

    public $date;
   
    /**
     * Create a new event instance.
     *
     * @param string $date Date
     *
     * @return void
     */
    public function __construct($date)
    {
        $this->date = $date;
    }

    /**
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        return [];
    }
}

và listener như thế này

<?php

namespace App\Listeners;

use App\Events\CreateItem as CreateItem;

class CreateItem
{
   private $createItemSer;
    /**
     * Get date for create item  constructor.
     */
    public function __construct() {
        $this->createItemSer = new CreateItemSer();
    }
    
    /**
     * Handle the event.
     *
     * @param CreateItem $event Get date for timeline
     *
     * @return void
     */
    public function handle(CreateItem $event)
    {
        $this->createItemSer->createItem($event->date);
    }
}

Hiện tại em check code rất kĩ nhưng k thấy vấn đề, và em test ở các môi trường như local, dev thì k bị lỗi, nhưng trên prod của em thì bị duplicate item. Sự khác biệt lớn nhất giữa server Prod và dev của em là trên Prod em dùng 2 server cho cùng 1 host (kiểu giống như khi auto scalling của AWS). Ai biết cái này vì sao có lại lỗi không chỉ mình với. Xin cảm ơn ạ.

thg 4 23, 2018 9:19 SA

Nếu local chạy ổn mà product có vấn đề thì mình cũng nghĩ chắc do cấu trúc khác nhau như bạn nghi ngờ. Nhưng mình vẫn chưa hiểu ý bạn nói: "Prod em dùng 2 server cho cùng 1 host". Có phải ý bạn nói là Product của bạn đang chạy trên 2 server riêng biệt?

0
| Reply
Share

1 ANSWERS


Answered thg 4 24, 2018 9:40 SA
Accepted
+1

Bạn kiểm tra xem https://laravel.com/docs/5.6/scheduling#running-tasks-on-one-server 5.2 chưa support nhưng bạn có thể gg tìm hiểu cách giải quyết nhé, mình nghĩ có thể do thằng này.

Share
Viblo
Let's register a Viblo Account to get more interesting posts.