php - Laravel 中使用队列的问题
问题描述
我遇到了一些问题,直到现在我都无法解决。当我执行时php artisan queue:work
,我有下一个错误:
[2019-09-22 23:25:20][12] 处理:App\Listeners\WelcomeNewStudentListener
[2019-09-22 23:25:20][12] 失败:App\Listeners\WelcomeNewStudentListener
在我的.env
文件下面:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:i+VBlcoP1fQodPn+ZV9os2knWv/piI4Gb/TDr0Dmq9U=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=crudAlumnos
DB_USERNAME=root
DB_PASSWORD=12345
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=database
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
在我的EventServiceProvider.php
我有下一个:
<?php
namespace App\Providers;
use App\Events\NewStudentHasRegisteredEvent;
//use App\Listeners\WelcomeNewStudentListener;
use App\Listeners\RegisterStudentToNewsletter;
//use App\Listeners\NotifyAdminViaSlack;
use Illuminate\Support\Facades\Event;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
//agregando mi evento
NewStudentHasRegisteredEvent::class => [
//aqui se agrega el listener
\App\Listeners\WelcomeNewStudentListener::class,
RegisterStudentToNewsletter::class,
\App\Listeners\NotifyAdminViaSlack::class,
],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();
//
}
}
最后在我的WelcomeNewStudenListener.php
<?php
namespace App\Listeners;
use App\Mail\WelcomeNewUserMail;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Mail;
class WelcomeNewStudentListener implements ShouldQueue
{
//ESTE ES EL LISTENER
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
//
sleep(10); //10 seconds
Mail::to($event->datosEnviar->email)->send(new WelcomeNewUserMail());
}
}
另外failed_jobs
,我的数据库中有工作和表格。
所以我无法用queue:work解决这个问题
解决方案
推荐阅读
- vba - 从 Sharepoint 复制和下载文件
- ios - 识别配置文件中包含的证书
- java - 如何用java自定义魅力报告
- firebase - onCreate 函数未在 firebase 函数中调用
- python - 如何在 Linux 上的 Python 虚拟环境中安装和使用 Jupyter lab?
- powershell - 如何使用 powershell 更新 AD 用户的 UsageLocation
- ace-editor - 什么是 blob:http://localhost:9000/064e8460-0ef0-4903-a867-7548088308a3 在 ace.js
- mongodb - 如何进行更快的 MongoDB 聚合?
- multithreading - IntelliJ IDEA 更改默认断点暂停策略
- javascript - 检测形式的变化