ftp
4 سال پیش توسط ftp مطرح شد
2 پاسخ

ثبت نام با صف

@behzad.azizan
@nimageneral
@abedim910
من میخوام یک ثبت نام رو انجام بدم با صف البته برای مثال هست اما ارور میده
کنترلر

$user=User::created([
           'name'=> "alireza14",
            'email'=>'net17@gmail.com',
            'password'=>bcrypt("12344")
        ]);
        sendmail::dispatch($user)->onQueue("email")->delay(now()->addSeconds(2));

job هم اینه

<?php

namespace App\Jobs;

use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class sendmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    public $user;
//    public $tries=3;
    public function __construct(User $user)
    {
        $this->user=$user;

    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        echo "masoud".$this->user;
    }
}

ارور اینه
توضیح تصویر رو وارد کنید


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

در ضمن داخل متد handle به جای echo میتونی از var_dump استفاده کنی
به این ترتیب اجرای کدها متوقف نمیشه و سایر مراحل رو هم میتونی ببینی

var_dump("sending email to ". $this->user->name);

با توجه به اینکه ۵ ثانیه هم delay اضافه کردی، استفاده از Log فِساد هم میتونه مناسب باشه.

\Log::info("sending email to ". $this->user->name);

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
3

متن خطا میگه این کلاس Job انتظار دریافت Instance ی از کلاس User رو داره
اما null رو میگیره


علتش هم خطای تایپی در قسمتی هست که User رو میسازی..

User::created

رو به

User::create

تغییر بده، باید مشکل حل بشه


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

در ضمن داخل متد handle به جای echo میتونی از var_dump استفاده کنی
به این ترتیب اجرای کدها متوقف نمیشه و سایر مراحل رو هم میتونی ببینی

var_dump("sending email to ". $this->user->name);

با توجه به اینکه ۵ ثانیه هم delay اضافه کردی، استفاده از Log فِساد هم میتونه مناسب باشه.

\Log::info("sending email to ". $this->user->name);

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام